Apache 使用 RewriteRule 重定向完整 URL

Apache 使用 RewriteRule 重定向完整 URL

我有一个“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 中的额外斜杠。

相关内容