如何用htaccess的mod_rewrite实现URL参数转换及多参数透传
.htaccess mod_rewrite 实现方案
前置要求
确保Apache服务器已开启mod_rewrite模块,且站点配置中已设置AllowOverride All允许.htaccess文件生效。
完整配置代码
RewriteEngine On # 可选:排除真实存在的文件/目录,避免影响静态资源访问 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 两级路径重写+参数透传规则 RewriteRule ^([^/]+)/([^/]+)/?$ /?title=$1&subtitle=$2 [L,QSA]
规则说明
- 路径匹配规则
^([^/]+)/([^/]+)/?$会捕获URL中前两个路径段,分别对应你需要的title和subtitle参数值,同时兼容路径末尾带/和不带/的两种格式 - 标记
L表示规则命中后停止执行后续重写逻辑,避免规则冲突 - 标记
QSA(Query String Append)是实现多参数透传的核心,它会自动将原URL中携带的所有查询参数(比如示例的id=3033,以及后续的任意自定义参数)自动追加到重写后的参数列表末尾,自动处理&符号拼接,无需手动适配参数数量
效果验证
测试输入URL:
domain.com/jingle/bells/?id=3033&page=2&sort=asc
内部重写后实际解析的地址:domain.com/?title=jingle&subtitle=bells&id=3033&page=2&sort=asc,完全满足需求
内容的提问来源于stack exchange,提问作者scully
相关产品推荐
相关产品推荐

