在WordPress中使用.htaccess删除尾部斜杠

Jua*_*lpi 6 wordpress .htaccess mod-rewrite trailing-slash

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

我发现像类似的答案,这一个,但是当以前有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
Run Code Online (Sandbox Code Playgroud)

Fra*_*key 19

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

  • 如此简单的解决方案。谢谢。 (2认同)

tim*_*com 10

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

需要考虑的重要事项

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

步骤 1 - 更新 /.htaccess 文件

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

# Remove trailing slashes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

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

</IfModule>
Run Code Online (Sandbox Code Playgroud)

第 2 步 - 更新固定链接

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


Oli*_*ons 8

试试这个:

# 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>
Run Code Online (Sandbox Code Playgroud)

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

# 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>
Run Code Online (Sandbox Code Playgroud)

  • 您不应该更新 .htaccess 中 #BEGIN Wordpress 块之间的任何内容! (3认同)