试图添加结束斜杠到所有的URL。 这里是代码:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !-f RewriteCond %{REQUEST_URI} !/$ RewriteCond %{REQUEST_URI} !.html$ RewriteCond %{REQUEST_URI} !.xml$ RewriteRule ^(.*[^/])$ $1/ [R=301,L]
它工作,但是。 访问http://www.example.com时,你会得到一个索引页面的克隆。 这对于seo不好。 但http://www.example.com/articles//redirect到http://www.example.com/articles/如何处理索引中的双斜杠? 需要帮忙!
尝试这个:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d ... RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [R=301,L]
你可以在我写的地方添加你的exception...只有在还没有结尾的斜杠时才会redirect。
编辑:
发现这个并validation它的工作原理:
RewriteCond %{HTTP_HOST} !="" RewriteCond %{THE_REQUEST} ^[AZ]+\s//+(.*)\sHTTP/[0-9.]+$ [OR] RewriteCond %{THE_REQUEST} ^[AZ]+\s(.*/)/+\sHTTP/[0-9.]+$ RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]
这应该做你正在尝试…