-1

ラップトップ (localhost:8080) で VertrigoServ 2.27 を使用しています。

書き換えモジュールが有効になっていて、alice.html と bob.html の例 (http://stackoverflow.com/questions/6944521/url-rewriting-on-localhost) でテストしたところ、www-subfolder 内の .htacces で動作します。また、.htaccess 内にゴミのテキストを入れたところ、Apcheserver からエラーが発生したため、書き換え mod が実行されており、ルールを使用できます。

ルールは次のとおりです: (/www/folder1/.htaccess内)
オプション +FollowSymLinks
RewriteEngine オン
RewriteRule /(.*) /index.php?disp=$1 [QSA,L]

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

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

  • サブフォルダ名をURLに保持するにはどうすればよいですか?

そして、次のような URL を変換したい: www.best-food-of-the-usa.com/index.php?operation=top&state=arizona& city=mesa&limit=10

これが好き:www.best-food-of-the-usa.com/arizona/mesa/top10.html

どんな助けでも大歓迎です。ありがとう\ホセ

4

1 に答える 1

1

RewriteRuleドキュメントが言うように動作しています。

RewriteRule ディレクティブApache Docsから

何が一致していますか?

VirtualHost コンテキストでは、パターンは最初に URL のホスト名とポートの後、クエリ文字列の前の部分と照合されます (例: "/app1/index.html")。

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

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

そのため、Directory and htaccessコンテキスト内では接頭辞/www/folder1/が削除されます。RewriteRuleまた、コンテキスト内でwith と一致する場合Directory and htaccess、パターンが で始まることはありません/

だから、あなたのRewriteRuleはずです:

Options +FollowSymLinks 
RewriteEngine  On
RewriteRule (.*) /index.php?disp=$1 [QSA,L]
于 2012-02-28T12:56:33.360 に答える