.htaccess - 最后只强制 1 个单斜线
问题描述
我希望我的 wordpress 强制在某个帖子或页面 url 的末尾只有一个斜杠。
当 WP 页面未缓存时,我在管理员中,一切正常。
像这样的情况:
- somewww.com/somepage
- somewww.com/somepage//
- somewww.com/somepage///
all 被强制到 somewww.com/somepage/ 那里只有一个斜线。
但是,如果我们在页面的缓存版本上,则打开 url 而不会在末尾强制使用 1 个斜杠。
所以,我找到了第二个代码(在 WP Rocket 网站上):
# Force trailing slash
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpg|png|jpeg|css|xml|txt|js|php|scss|webp|mp3|avi|wav|mp4|mov)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]
在 htaccess 中,我一开始就编写了代码。
因此,目前仅在第 1 种情况下运行良好,其他都失败了。
谁能帮助我在 Wordpress 上重写页面网址?谢谢
解决方案
您可以使用此规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_URI} !/$ [OR]
RewriteCond %{THE_REQUEST} \s[^?]*/{2,}[\s?]
RewriteRule ^(.*?)/?$ https://%{HTTP_HOST}/$1/ [L,R=301,NE]
确保在测试此规则之前清除浏览器缓存。
推荐阅读
- python - 使用 line_profiler 分析 Cython 时出错
- python-3.x - 如何生成包含子文件夹中文件列表的列表
- oracle - 如何从开始/结束日期记录中拆分多条记录
- express - Express.js - 如何使用内置响应对象创建辅助函数
- php - 如何通过变量访问静态方法?
- dynamics-crm - Classic 和 UUI 中的相关性搜索
- r - 如何减少 selectinput 中标签和选项之间的空间?
- python-3.7 - 为什么 range 函数的末尾有一个 -1?
- roku - 是否可以在 Roku 中管理(全屏)视频屏幕?
- node.js - 快速忽略路由参数中的斜杠