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

如何使用.htaccess重写URL,将/search/?query=xxx转为/search/xxx/格式

实现URL重写的.htaccess配置方案

前置要求

  • 确保Apache服务器已开启mod_rewrite扩展
  • 站点配置中的AllowOverride参数已设置为All,允许.htaccess文件生效

完整配置代码

RewriteEngine On

# 旧带参URL 301永久重定向到美观URL格式
RewriteCond %{QUERY_STRING} ^query=([^&]+)$
RewriteRule ^search/$ /search/%1/? [R=301,L]

# 美观URL内部重写为后端可识别的带参格式
RewriteRule ^search/([^/]+)/?$ /search/?query=$1 [L]

规则说明

  • 第一部分规则作用:用户访问/search/?query=anything格式的旧地址时,会自动301跳转到/search/anything/格式的新地址,地址栏同步更新
    • 规则末尾的?作用是清除原URL携带的查询字符串,避免跳转后地址保留?query=xxx后缀
    • 测试阶段可将R=301改为R=302使用临时重定向,避免浏览器缓存错误规则影响调试
  • 第二部分规则作用:用户访问/search/anything/格式的新地址时,服务器内部会将请求转发到/search/?query=anything处理,地址栏不会发生变化,保证后端逻辑可以正常获取query参数

适配调整提示

如果你的搜索功能对应的实际处理文件是search.php,将第二部分规则的目标地址改为/search.php?query=$1即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:15:04