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

Apache重定向规则求助:三类URL场景需统一301重定向至指定域名

Apache重定向规则求助:三类URL场景需统一301重定向至指定域名

兄弟,你之前用的Redirect 301是针对单个固定URL的定向,自然没办法覆盖你说的三类动态变化的场景啦!要搞定这个需求,得用Apache的mod_rewrite模块——它能处理通配符匹配、查询字符串检测,完美适配你的三个URL模式。

下面是针对你需求写的完整重定向规则,直接放到你的.htaccess文件(或者Apache配置文件的对应站点块里)就行:

# 先启用mod_rewrite模块
RewriteEngine On

# 场景1:匹配所有以/a/2/开头的URL(不管后续路径和查询字符串)
RewriteRule ^a/2/.*$ https://mydomain.com [R=301,L]

# 场景2:匹配所有以/s/ + 数字串开头的URL(比如/s/245/、/s/6789/这类)
RewriteRule ^s/\d+/.*$ https://mydomain.com [R=301,L]

# 场景3:匹配/addons/step1.php且查询字符串包含day_session=4的URL
RewriteCond %{QUERY_STRING} (^|&)day_session=4(&|$)
RewriteRule ^addons/step1\.php$ https://mydomain.com [R=301,L]

规则解释:

  • RewriteEngine On:必须放在最前面,开启重写功能
  • ^a/2/.*$:^匹配URL路径开头,.*匹配任意长度的后续字符,确保所有/a/2/开头的URL都被命中
  • ^s/\d+/.*$:\d+匹配一个或多个数字,覆盖/s/245/、/s/1234/这类带数字前缀的路径
  • 场景3的RewriteCond:专门检测查询字符串里是否包含day_session=4,(^|&)和(&|$)是为了避免误匹配类似day_session=44这类参数值
  • [R=301,L]:R=301表示永久重定向,L表示匹配到这条规则后就停止处理后续规则,避免冲突

调试小提示:

测试的时候可以先把R=301改成R=302(临时重定向),因为301会被浏览器缓存,调试阶段用临时重定向更方便修改规则。等确认所有场景都能正确跳转后,再改回301就行。

备注:内容来源于stack exchange,提问作者Puzzel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 08:50:26