1

あらすじ:

localhost/root/admin は
、アドレス バーの URL を変更せずに /root/admin を /root/index.php?url=admin に移動する既存のフォルダーです。

唯一の例外は、要求されたファイルが画像の場合です

これは、localhost/root の .htaccess ファイルについて、これをすべて試してみるために書いたものです。

RewriteEngine On
RewriteBase /root/

RewriteCond %{REQUEST_URI} !index\.php$
RewriteCond %{REQUEST_URI} !(.*\.(png|jpg|gif))$ [NC]
RewriteRule (.*) index.php?url=$1 [QSA,L]

代わりに、localhost/root/admin を localhost/root/index.php にリダイレクトし、アドレス バーの URL を localhost/root/admin/?url=admin に変更します。

「admin」に末尾のスラッシュ (/) を追加した場合にのみ、これは行われません。

私のMacラップトップでは、このmod_rewriteコードが意図したとおりに機能することを知っていますが、localhostのhtdocsフォルダーではなく「Sites」フォルダーで実行する場合のみです。

これを修正するために私ができることについて何か考えはありますか?

4

1 に答える 1

0

実際のリダイレクトを防ぐために、「PT」フラグが欠落しているだけだと思います。PT (パススルー) は、Apache が内部的に提供されるリソースをリダイレクトすることを意味しますが、ブラウザーには同じ URL が表示されます。(詳細については、Apache wiki を参照してください: http://wiki.apache.org/httpd/RewriteFlags/PT )

RewriteEngine On
RewriteBase /root/

RewriteCond %{REQUEST_URI} !index\.php$
RewriteCond %{REQUEST_URI} !(.*\.(png|jpg|gif))$ [NC]
RewriteRule (.*) index.php?url=$1 [PT,QSA,L]

唯一の変更は、フラグを追加することであることに注意してください。私は自分のサーバーでこれをテストし、あなたが望むと思う動作を見ました。

于 2012-12-13T22:09:57.363 に答える