You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搭配现有htaccess规则正确移除URL末尾的尾部斜杠

最优实现方案

你之前的规则不生效的核心原因是规则放置顺序错误,需要将移除尾部斜杠的逻辑放在HTTPS/WWW强制跳转规则之后、转发到index.php的前端控制器规则之前,才能避免被后续转发规则拦截,修改后的完整.htaccess规则如下:

# 强制WWW前缀
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

# 强制HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# 新增:移除非真实目录URL的尾部斜杠
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

# 前端控制器:不存在的资源转发到index.php
RewriteRule ^$ index.php?/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?/$1 [QSA,L]

规则说明

  1. 保留了!-d判断条件,确保服务器真实存在的目录仍然可以正常访问,不会被移除尾部斜杠
  2. 跳转规则放在域名/协议校验之后,避免产生多余的多次跳转,所有重定向逻辑执行完成后才会进入转发到index.php的逻辑
  3. 测试阶段建议先将R=301改为R=302使用临时跳转,避免浏览器缓存错误的跳转规则,确认生效后再改回301永久跳转。

内容的提问来源于stack exchange,提问作者NaughtySquid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:03