1

次のように RewriteRule を作成しようとしています。

RewriteCond %{HTTP_HOST} ^dev$ [NC]
RewriteRule ^(.*)$ test/$1 [L]

誰かがhttp://dev/index.phpそれを入力すると、実際に取得されるファイルはhttp://dev/test/index.php.

ただし、これにより内部リダイレクトの負荷が発生するようです。

誰か助けて?

4

1 に答える 1

2

追加

RewriteCond %{REQUEST_URI} !^/?test

...最初の前にRewriteCond

書き換えルールの[L]フラグは (やや直感に反しますが) 書き換えプロセスを最初からやり直します。現在のルールは反復ごとに一致し、mod_rewrite は無限ループに入ります。上記を追加するRewriteCondと、最初の反復でのみ一致することを意味します。

Apache 2.3.9 以降で実行している場合は、[END]代わりに書き換えルールでフラグを使用できます。[L]これにより、mod_rewrite がすぐに終了し、問題が回避されます。RewriteCond上記のルールでは、正当に で始まるページに対してルールが機能しなくなるため、これが利用可能であれば、実際にはより良い解決策になりますtest

于 2012-08-15T15:56:16.387 に答える