2012-02-28 13 views
-1

私はノートパソコン(localhost:8080)でVertrigoServ 2.27を使用しています。私は仕事を書き直すことができません

書き換えモジュールが有効になっていて、私はalice.htmlとbob.html例 (http://stackoverflow.com/questions/6944521/url-rewriting-on-localhost) でそれをテストし、それが.htaccesで動作していますwwwのサブフォルダ内にあります。そして、私はまた、.htaccessの中にゴミ箱のテキストを入れて、 私はApcheserverからエラーを受け取り、modが実行されているので、私は運転免許の使用規則を書き換えます。

 
here is the rule: (inside /www/folder1/.htaccess) 
Options +FollowSymLinks 
RewriteEngine On 
RewriteRule /(.*) /index.php?disp=$1 [QSA,L] 

このURLをブラウザに挿入すると、インデックスページが正常に読み込まれます。 http://localhost:8080/folder1/index.php

そして、問題はここにある:私はindex.page経由でログイン(ログインページ)を要求し、送信ボタンURLはlocalhostの変更 clikingで サーバーをlocalhostにURLを送信すると:8080 /ログインを、それがlocalhostにする必要があります:8080/folder1/login

  • 私はどのようにURLにサブフォルダ名を保持できますか?

と私は、このようなURLに変換したい:www.best-food-of-the-usa.com/index.php?operation=top &状態を=アリゾナ& 市=メサ&制限= 10

to like:www.best-food-of-the-usa.com/arizona/mesa/top10.html

何か助けていただければ幸いです。ありがとう \ Jose

答えて

1

RewriteRuleは、ドキュメントのように振る舞います。 RewriteRule Directive Apache Docs

から

何を一致していますか?

VirtualHostコンテキストでは、パターンは、ホスト名とポートの後ろ、およびクエリ文字列の前のURLの部分と最初に一致します(「/app1/index.html」など)。

ディレクトリとhtaccessコンテキストでは、現在のRewriteRule(たとえば、 "app1/index.html"または "index.html"に応じてサーバーを導く接頭辞を削除した後、パターンは最初にファイルシステムのパスと照合されます。ディレクティブが定義されている場所)。

ホスト名、ポート、またはクエリ文字列と照合する場合は、それぞれ%{HTTP_HOST}、%{SERVER_PORT}、または%{QUERY_STRING}変数でRewriteCondを使用します。

したがって、Directory and htaccessという文脈では、接頭辞/www/folder1/が削除されます。 Directory and htaccessという文脈でRewriteRuleと一致する場合、パターンは/で始まらないことにも注意してください。

だから、あなたのRewriteRuleは次のようになります。

Options +FollowSymLinks 
RewriteEngine On 
RewriteRule (.*) /index.php?disp=$1 [QSA,L] 
+0

ありがとうございました。 OK、私はVirtualHostコンテキスト内にrewriteruleを入れて、今は動作します。 .htaccessについての情報は非常によく知っていました(コンテキスト/ www/folder1 /が削除され、ANDパターンはファイルシステムのパスと最初は一致します)。なぜhtaccess内でルールが機能しないのでしょうか? 。 \ Jose – user1230800

関連する問題