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

如何用.htaccess将查询字符串转为SEO友好URL且保留其余查询参数

问题解决方法

问题根源

  • 默认情况下Apache的RewriteRule在重写时会用规则内定义的查询参数覆盖原URL携带的查询参数,你当前规则没有开启查询参数追加配置,因此原URL里的search参数在重写后被丢弃,PHP自然无法获取。

解决方案

在你的重写规则标记位增加QSA(Query String Append,查询字符串追加)标记即可,修改后的完整.htaccess代码如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)$ product.php?slug=$1 [QSA,NC,L]

补充说明

  • 如果你的.htaccess文件放在网站根目录而非products子目录下,需要调整重写规则匹配路径,写法如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^products/([^/\.]+)$ /products/product.php?slug=$1 [QSA,NC,L]
  • 修改完成后刷新页面即可生效,此时再访问domain.com/products/product-name?search=test,就能在PHP中正常获取$_GET['search']参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 12:36:02