这是我的重定向规则:
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
答案 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
不需要反斜杠。