使用.htaccess移除PHP后缀后,如何消除URL末尾的多余斜杠?
解决URL末尾自动添加斜杠的问题
调整后的.htaccess规则
替换你现有的规则为以下内容,确保顺序正确:
RewriteEngine On # 1. 移除URL末尾的斜杠(仅针对非真实目录的请求) RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # 2. 为无后缀的请求添加.php后缀(排除真实文件和目录) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.php [NC,L]
规则说明
- 移除斜杠的规则:先判断请求路径不是真实目录(
!-d),再将末尾带斜杠的URL重定向到不带斜杠的版本,301永久重定向可保证搜索引擎友好。 - 添加.php后缀的规则:新增
!-d条件,避免同名目录触发错误重写;同时排除真实文件(如样式表、图片等静态资源),防止静态资源被错误解析为PHP文件,以此避免样式失效问题。
额外注意事项
- 样式表、脚本等静态资源建议使用绝对路径(如
/css/style.css),或确保相对路径适配不带斜杠的URL结构,避免资源加载失败。 - 测试前清空浏览器缓存,避免旧重定向规则干扰测试结果。
内容的提问来源于stack exchange,提问作者Lebakeng
相关产品推荐
相关产品推荐

