我有一个“RewriteRule”重定向问题,我在 mt .htaccess 中有这个:
RewriteCond %{HTTP_HOST} ^foo.domain.com
RewriteRule ^(.*)$ http://www.domain.com/foo/$1 [R=permanent,L]
如果我去 foo.domain.com 重定向到 www.domain.com/foo/ 就可以了,但是我去 foo.domain.com/bar 我有一个错误,必须去 www.domain.com/foo/酒吧。错误在哪里?
答案1
Apache(或 mod_rewrite)可能正在构建错误的“Location:”标题行。在重写规则中添加斜杠:
RewriteCond %{HTTP_HOST} ^foo.domain.com
RewriteRule ^/(.*)$ http://www.domain.com/foo/$1 [R=permanent,L]
当我在没有斜杠的情况下尝试此操作时,我会得到“Location:”标题行,看起来像:http://www.stratigery.com/foo//whatever
。我不确定所有浏览器都能处理 URL 中的额外斜杠。