我想要:所有不包含文件名(不是 .html、.jpg、.png、.css)的链接都以状态 301 重定向到目录,例如: http: //mysite.com/article -> http://mysite。 com/article/ 但http://mysite.com/article/article-15.html不重定向。我必须向 .htaccess 写入什么规则表达式才能将斜杠添加到虚拟目录?
starkeen
问问题
1119 次
3 回答
2
我认为以下可能有效:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
说到 mod_rewrite 我永远无法确定没有测试......
于 2008-09-17T10:19:52.130 回答
1
需要澄清:
给定网址: http://server/path/file
是否被重定向到: http://server/path/
还是被重定向到: http://server/path/file/
如:您希望重定向转到父路径,还是只想添加一个斜杠并假设当前路径之外的目录?
于 2008-09-17T10:02:38.113 回答
0
上面 MB 的 RewriteRule 将在路径上失败,/a
因为它需要在斜杠后匹配至少两个字符。此外,它仅匹配顶级目录 URL。
RewriteRule ^(([^\/]+\/)*[^\/\.]+)$ http://%{HTTP_HOST}/$1/ [R=301,L]
这样做的目的是为了减少历史污染/假阴性吗?
于 2008-10-10T23:03:44.570 回答