【问题标题】:Remove trailing slash using .htaccess in WordPress在 WordPress 中使用 .htaccess 删除尾部斜杠
【发布时间】:2012-01-23 09:36:41
【问题描述】:

我正在寻找一种方法来删除所有 WordPress URL 的尾部斜杠。

我找到了类似的答案,例如this one,但是当之前有 WordPress .htaccess 规则时它不起作用。

这是我当前的 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

【问题讨论】:

    标签: wordpress .htaccess mod-rewrite trailing-slash


    【解决方案1】:

    这可能就像在 wp 管理员中转到设置 > 永久链接并删除自定义结构输入框中的尾部斜杠一样简单

    【讨论】:

    • 如此简单的解决方案。谢谢。
    • 这是最好最简单的解决方案。它对我有用。除非有必要,否则我不喜欢弄乱 .htaccess 文件
    【解决方案2】:

    以下是在站点范围内删除尾部斜杠的步骤。如果您只想删除帖子的尾部斜杠,请跳至第 2 步

    需要考虑的重要事项

    • .htaccess 中,行之间的代码# BEGIN WordPress# END WordPress may get reset by WordPress。避免在这些行之间更改代码。
    • 强制删除尾部斜杠会导致loop in example.com/wp-admin。您可以通过排除目录RewriteCond %{REQUEST_FILENAME} !-d 来避免此问题。

    以下解决方案解决了这些问题。

    第 1 步 - 更新 /.htaccess 文件

    在 /.htaccess 文件中的 # BEGIN WordPress 行之前添加以下代码。这会将带有斜杠的 URL 重定向到没有斜杠的 URL。

    # Remove trailing slashes
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)/$ /$1 [R=301,L]
    
    </IfModule>
    

    第 2 步 - 更新固定链接

    正如其他人指出的那样,您还必须将您的永久链接(设置 -> 永久链接)更新为自定义结构,并删除那里的尾部斜杠。它会删除所有帖子上的尾部斜杠。

    【讨论】:

    • 应该被认为是一个公认的答案,因为开始 wordpress 的事情!干得好!
    【解决方案3】:

    试试这个:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
    
        RewriteRule (.+)/$ $1 [R=301,L]
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
    </IfModule>
    

    如果它不起作用,试试这个:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
    
        RewriteRule (.+)/$ http://www.domain.com/$1 [R=301,L]
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
    </IfModule>
    

    【讨论】:

    • 您不应该更新 .htaccess 中#BEGIN Wordpress 块之间的任何内容!
    • @Yashvit 说不给出任何可行的解决方案是没有用的。
    • 固定链接?另一个答案?我需要重复吗?
    • 删除斜杠的指令需要# BEGIN WordPress部分之前。 (正如@Yashvit 指出的那样,您不应该编辑# BEGIN/END WordPress 注释标记之间的部分,因为 WP 本身会尝试维护此代码块,并且任何自定义指令都可能会被覆盖。这是 WP 特定的。通常,你会放该指令与发布的完全一样,除非您需要访问目录(不太可能),否则您需要一个额外的 condition 来排除目录。)
    【解决方案4】:

    要解决 WordPress URL 中的斜杠问题,请登录您的网站管理面板 -> 转到设置选项卡 -> 单击设置下的永久链接。它将打开一个类似于以下屏幕的页面:

    现在,检查以验证您为网站 URL 结构选择的设置。确保您没有在 URL 结构中留下斜杠。 https://blog.techblogsearch.com/2018/11/29/guide-to-remove-trailing-slash-from-wordpress-url

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2015-01-15
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多