我收到500内部服务器错误,其中包含以下内容:
RewriteCond %{HTTP_HOST} ^data\.mysite\.com$ [NC]
RewriteRule ^(.*)$ data/$1 [L,QSA]
----------------- ??? 当我用以下内容替换RewriteRule行时:
RewriteRule ^(.*)$ data/index.php?r=$1 [L,QSA]
它有效,但在实际情况下我不会在文件夹中有index.php,我将有包含图像的文件夹...
任何想法? 原始问题here
答案 0 :(得分:1)
您的重写规则是循环的,每次重写URI时,都会重新应用所有规则,直到规则不更改URI。因此,当您请求 / something 时,将应用重写规则并将URI更改为 / data / something ,然后通过重写引擎重新发送,然后重写到 / data / data / something 然后 / data / data / data / something 等等。最终mod_rewrite将达到其递归限制并返回500服务器错误。假设您真的只想在开头添加一个 / data / ,您可以尝试一些事情来结束循环。您可以在RewriteRule
RewriteCond %{REQUEST_URI} ^/data
或
RewriteCond $1 ^/data