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

如何使用.htaccess重写URL,移除路径末尾斜杠(含参数场景)

移除URL末尾斜杠的.htaccess规则实现

你的需求是移除路径后的末尾斜杠,同时完整保留查询参数,以下是可行的解决方案:

正确的.htaccess规则

在你的.htaccess文件中添加以下规则(如果已有RewriteEngine On,则无需重复添加):

RewriteEngine On

# 移除末尾斜杠(排除真实文件和目录)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1 [L,R=301,QSA]

# 你的原有规则(给无后缀URL添加.php,可保留)
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

规则说明

  • RewriteRule ^(.*)/$ $1 [L,R=301,QSA]:匹配所有末尾带斜杠的请求,将其重写为不带斜杠的路径;QSA参数确保查询字符串(如?sku=23456&qty=3)被完整保留;R=301表示永久重定向,利于SEO。
  • 前置的两个RewriteCond是为了排除真实存在的文件和目录,避免影响正常的文件访问。

效果验证

应用规则后,你的示例URL会按预期转换:

  • 原URL:www.example.com/test/?sku=23456&qty=3 → 目标URL:www.example.com/test?sku=23456&qty=3
  • 原URL:www.example.com/page2/?page=3&emp=543 → 目标URL:www.example.com/page2?page=3&emp=543
  • 原URL:www.example.com/stream/?start=4&id=tdfcs45s&q=sat → 目标URL:www.example.com/stream?start=4&id=tdfcs45s&q=sat

原有规则无效原因

你之前使用的规则是给无后缀的请求自动添加.php后缀,和移除末尾斜杠的需求完全无关,因此无法实现你的目标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:15:37