我正在寻找一种方法来删除所有 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
这可能很简单,只需转到 wp 管理中的设置 > 永久链接并删除输入框中的尾部斜杠即可自定义结构
以下是在站点范围内删除尾随斜杠的步骤。如果您只想删除帖子上的尾部斜杠,请跳至第 2 步。
.htaccess
中,# BEGIN WordPress
和 # END WordPress
行之间的代码可能会被 WordPress 重置。避免更改这些行之间的代码。 RewriteCond %{REQUEST_FILENAME} !-d
。以下解决方案解决了这些问题。
在 /.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>
正如其他人指出的那样,您还必须将永久链接(设置 -> 永久链接)更新为自定义结构,并删除那里的尾部斜杠。它会删除所有帖子上的尾部斜杠。
试试这个:
# 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>
要解决 WordPress URL 中的尾部斜杠问题,请登录您的网站管理面板 -> 转到“设置”选项卡 -> 单击“设置”下的“永久链接”。它将打开一个类似于以下屏幕的页面:
现在,检查并验证您为网站 URL 结构选择的设置。确保 URL 结构中没有留下尾部斜杠。 https://blog.techblogsearch.com/2018/11/29/guide-to-remove-trailing-slash-from-wordpress-url