.htaccess mod重写301重定向
时间:2020-03-05 18:58:28 来源:igfitidea点击:
我想:
所有不包含文件名的链接(非.html,.jpg,.png,.css)都以状态301重定向到目录,例如:http://mysite.com/article-> http://mysite.com/article /
但是http://mysite.com/article/article-15.html不能重定向。
为了将斜杠添加到虚拟目录,我必须写入.htaccess的哪种规则表达式?
解决方案
回答
需要澄清:
给定URL:
http://服务器/路径/文件
是否将其重定向到:
http://服务器/路径/
还是重定向到:
http://服务器/路径/文件/
如:我们是否要重定向到父路径,还是只想添加一个斜线并假定目录不在当前路径之外?
回答
我认为以下方法可能有效:
RewriteEngine on RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$ RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]
当涉及到mod_rewrite时,我无法确定是否要进行测试...
回答
MB的上述RewriteRule在`/ a'之类的路径上将失败,因为它需要在斜杠后至少匹配两个字符。此外,它仅与顶级目录URL匹配。
RewriteRule ^(([^\/]+\/)*[^\/\.]+)$ http://%{HTTP_HOST}// [R=301,L]
这样做的目的是减少历史污染/误报吗?