我的.htaccess中的rewriterule有问题 首先,我的网站上有一张wlidcard(* .site.com)
以下是我网站的路径:
/home/www/static/
/home/www/home/
/home/www/.htaccess
所以我在我的网站的根目录下创建了一个.htaccess:
RewriteCond %{HTTP_HOST} static.site.com [NC]
RewriteRule !^static/ static%{REQUEST_URI}
RewriteCond %{HTTP_HOST} www.site.com [NC]
RewriteRule !^home/ home%{REQUEST_URI}
这些重定向运行得非常好,但是当我想要举例时:
http://www.site.com/img
有一个问题,它正在重定向我http://www.site.com/home/img/
但是当我用最后的反斜杠键入http://www.site.com/img/
时,一切都还可以。
感谢您的回复:)
答案 0 :(得分:2)
尝试:
RewriteRule ^(.*)$ $1/ [R=301,L]
如果缺少斜线,这应该为你添加缺失斜杠。你想要包含'L'标志来告诉重写引擎这是你的最后重写,而不是在这个重叠之上应用其他规则。
答案 1 :(得分:1)
请勿匹配映射到现有目录的请求
RewriteCond %{REQUEST_FILENAME} !-d
如果这不起作用,请尝试匹配请求加上另一个斜杠是否为目录?
RewriteCond %{REQUEST_FILENAME}/ !-d
答案 2 :(得分:0)
解决了:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,6}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]