0

对 wordpress 网站使用一致的 URL 结构有明显的优势。

我希望我的所有 URL 都以 /(主页和内部页面 URL)结尾。让我举一个示例网站,它可以非常有效地处理它,以便不以斜杠结尾或以多个斜杠结尾的 URL 被 301 重定向到带有单斜杠的 URL。

http://viralpatel.net/blogs 301 重定向到viralpatel.net/blogs/

http://viralpatel.net/blogs//301 重定向到viralpatel.net/blogs/

http://viralpatel.net/blogs/ 200 好

http://viralpatel.net/blogs/check-string-is-valid-date-java301重定向到http://viralpatel.net/blogs/check-string-is-valid-date-java/

http://viralpatel.net/blogs/check-string-is-valid-date-java//301重定向到http://viralpatel.net/blogs/check-string-is-valid-date-java/

http://viralpatel.net/blogs/check-string-is-valid-date-java/200 好

知道什么 .htaccess 规则可以帮助实现这一目标。我当前的 .htaccess 看起来像:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^javaexperience.com [NC]
    RewriteRule ^(.*)$ http://www.javaexperience.com/$1 [R=301,L]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d    
    RewriteRule . /index.php [L]
4

1 回答 1

1

您将无法处理以 URI 结尾的 URL,//因为斜杠在处理 URI 之前已被规范化,因此 mod_rewrite 将永远无法匹配//(它只会看到一个/)。要处理这个问题,您可能需要浏览器方面的一些东西。RewriteBase对于没有斜线,在当前 htaccess 中的行上方添加:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
于 2012-11-08T16:21:18.090 回答