私はこれを2時間行っていましたが、やっと私は諦めました。
私は2つの条件があります:?
1.ユーザー要求のphpファイルをリダイレクトする場合は、CMS/index.phpを要求= $ 1
2. PHPは異なるユーザ要求何か(PNG、CSS、JPG)は、CMSをリダイレクトする場合は/ウェブサイト/ $ 1
最初のルールは機能しますが、2番目のルールを適用できませんでした。ユーザーが/cms/style.cssをリクエストすると、Apacheはcms/website/style.cssをリダイレクトし、cms/website/website/style.cssをリダイレクトしてループします。htaccessリダイレクト(ループ)の問題
私のhtaccessファイルは、そのようなものです:
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*\.php) /cms/index.php?request=$1 [L]
RewriteRule (.*\.!(php)) /cms/website/$1 [R,L]
注:私は最後の正規表現が真であるか、ないことをわかりません。そして、それは500のerror_log出力を返し、それは確かに難しいので
"[Tue Aug 16 16:26:11 2011] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace."
Apacheのログは試行錯誤がたくさんありますが、その二番目のルールが無限に見えている - それが一致した場合。すべてのルールは、リダイレクト( '[R]')の後に再び実行され、 '/ cms/website/$ 1'はルールに再度一致し、/ cms/website/cms/website/$ 1に再度転送されます。 –
@robin、実際には[RewriteLooping](http://wiki.apache.org/httpd/RewriteLooping)は、[R]を使用するとループしてはいけないと言います。ただし、このオプションを設定してもループします。 –