从站点中的所有URL中删除尾部斜杠

时间:2013-02-26 04:04:22

标签: .htaccess trailing-slash

我对整个.htaccess事情都很陌生,我一直在努力修改它,这样我的链接就不会在各自的URL末尾加上斜杠。我的网站是filmblurb.org。

Wordpress开始和结束的.htaccess代码如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

如果有人能够指导我如何解决这个问题,我将不胜感激。感谢。

3 个答案:

答案 0 :(得分:8)

您可以添加RewriteRule来消除尾部斜杠:

RewriteRule ^(.*)/$ $1 [R=301,L]

答案 1 :(得分:2)

问题不是由.htaccess引起的,而是由wordpress永久链接和.htaccess组合引起的。

  1. 登录到您的站点并导航到永久链接,然后如果您没有使用自定义结构选项,请切换到它并确保最后没有尾部斜杠:

    /%category%/%postname%
    
  2. 然后将其添加到您的.htaccess文件中

    RedirectMatch 301 ^(.*)/$ /$1
    
  3. 这比使用重写更好,因为它是重定向而不是重写。

    如果仍然无效,我建议您安装yoast seo插件,并在其中设置一个设置。

答案 2 :(得分:0)

这对我有用;从所有路由中删除所有尾部斜杠,同时强调REQUEST_URI以斜杠开头(至少在.htaccess文件中):

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

不要使用 %{REQUEST_URI} (.*)/$。因为在根目录中REQUEST_URI等于/,前导斜杠,并且它会被误解为尾部斜杠。

消息来源: https://stackoverflow.com/a/27264788/2732184