Mod rewrite 重定向缺少最终斜杠

Mod rewrite 重定向缺少最终斜杠,mod-rewrite,redirect,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.co

以下是我的重定向规则:

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

代码似乎是正确的。尽管我建议您将
重写规则
更改为:

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

不需要反斜杠。

我很肯定我也试过,结果也是一样的/somedir/other/和/somedir/file.html可以重定向,但以.pdf结尾的路径不能重定向。@ipavlic您还有什么重写规则?我已经编辑了我的答案。如果我在尝试访问我的网页时预先添加了
www.
,重定向似乎可以正常工作。@ipavlic您还有什么其他重写规则?我在编辑中编写的规则应该是我能知道的唯一规则。