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

从WordPress迁移后,如何编写.htaccess规则实现带参数的301重定向?

带可变参数的.htaccess 301重定向实现方案

直接在你的.htaccess文件最顶部(WordPress自带规则块之前)添加以下规则即可实现需求:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^g=([^&]+)$
RewriteRule ^people/$ /item-list?people=%1 [R=301,L,NE]

规则细节说明

  • RewriteEngine On:启用Apache的URL重写模块,所有重定向规则都依赖这个指令生效
  • RewriteCond %{QUERY_STRING} ^g=([^&]+)$:精准匹配查询字符串仅为g=xxx的请求,([^&]+)会捕获g=之后的所有内容(包含空格、字母等任意非&字符),捕获到的参数值暂存到%1变量中
  • RewriteRule ^people/$ /item-list?people=%1 [R=301,L,NE]:匹配路径为/people/的请求,将其永久重定向(R=301)到/item-list页面,并把之前捕获的参数值赋值给新的people参数;L表示执行完这条规则后停止后续规则解析,NE确保参数中的特殊字符(比如空格)不会被额外编码,保证参数值原样传递

注意事项

  • 务必将这条规则放在WordPress默认的# BEGIN WordPress注释块之前,否则会被WordPress的重写规则覆盖,无法生效
  • 如果原请求可能附带其他查询参数(比如?g=Joe Smith&foo=bar),可以调整条件为RewriteCond %{QUERY_STRING} (^|&)g=([^&]+)(&|$),并添加QSA flag保留其他参数,修改后的规则如下:
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (^|&)g=([^&]+)(&|$)
    RewriteRule ^people/$ /item-list?people=%2 [R=301,L,NE,QSA]
    
  • 测试阶段建议先使用R=302(临时重定向),确认规则符合预期后再改为R=301,避免浏览器缓存错误的重定向规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:25:06