0

我想要:所有不包含文件名(不是 .html、.jpg、.png、.css)的链接都以状态 301 重定向到目录,例如: http: //mysite.com/article -> http://mysite。 com/article/http://mysite.com/article/article-15.html不重定向。我必须向 .htaccess 写入什么规则表达式才能将斜杠添加到虚拟目录?

4

3 回答 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 回答