重定向缺少最终斜杠

时间:2012-02-25 13:08:19

标签: mod-rewrite redirect

这是我的重定向规则:

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteRule ^somedir\/?(.*)$ "http\:\/\/mydomain\.com\/newdir\/somedir\/$1" [R=301,L]

试图联系时

mydomain.com/somedir/Test.pdf

我被重定向到

www.mydomain.com/newdir/somedirTest.pdf (no slash before Test.pdf)

而不是

www.mydomain.com/newdir/somedir/Test.pdf (slash present)

我错过了什么?

编辑:

这是我的整个.httaccess

RewriteEngine on

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteRule ^somedir/?(.*)$ "http://mydomain.com/newdir/somedir/$1" [R=301,L]

我注意到如果我写

,重定向工作正常
www.mydomain.com/somedir/Test.pdf

但重定向没有带

的最终斜杠
mydomain.com/somedir/Test.pdf

1 个答案:

答案 0 :(得分:1)

代码似乎正确。虽然我建议您将RewriteRule更改为:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$
RewriteRule ^somedir/?(.*)$ http://mydomain.com/newdir/somedir/$1 [R=301,L]

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

不需要反斜杠。