如何配置htaccess规则实现URL含指定字符时跳转,否则执行原有重写规则
实现配置
你可以通过调整重写规则顺序实现需求,优先命中包含url+temp+var的跳转逻辑,剩余请求走原有重写规则,完整配置如下:
# 若已开启RewriteEngine可省略下行 RewriteEngine On # 匹配temp1路径下含url+temp+var的请求,跳转至新域名 RewriteRule ^temp1/.*url\+temp\+var.* https://newdomain.example [L,R=301,NC] # 原有重写规则,兜底处理其他请求 RewriteRule ^temp1/(.*)$ temp1.php?id=$1 [L]
规则说明
- 规则必须按上述顺序排列:mod_rewrite按从上到下的顺序匹配规则,命中带
[L]标记的规则后会终止后续匹配 - 正则中的
\+是对特殊字符+的转义,避免匹配逻辑异常 - 标记可按需调整:
R=301为永久重定向,若需要临时跳转可替换为R=302NC表示匹配时忽略大小写,如需严格区分大小写可删除该标记
- 效果验证:访问
https://olddomain.example/temp1/url+temp+var、https://olddomain.example/temp1/xxx-url+temp+var-xxx这类包含目标字符串的请求都会直接跳转至新域名,其他/temp1/下的请求仍会正常重写到temp1.php。
内容的提问来源于stack exchange,提问作者Danillo Leite
相关产品推荐
相关产品推荐

