【问题标题】:Handle Trailing slashes at the end of URL处理 URL 末尾的斜杠
【发布时间】:2012-10-27 19:18:00
【问题描述】:

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

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

http://viralpatel.net/blogs301 重定向到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-java 301 重定向到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]

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite cpanel


    【解决方案1】:

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

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
    

    【讨论】:

    • 嘿乔恩,谢谢你的回复。是否有任何你知道的 Wordpress 插件来处理这个 // 事情。网站viralpatel如何处理它?
    猜你喜欢
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多