将子域重定向到不包含带.htaccess的index.php的子文件夹

时间:2011-12-05 17:08:04

标签: .htaccess subdomain mod-rewrite

我收到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

1 个答案:

答案 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