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

.htaccess中精确匹配RewriteCond不生效的问题排查

规则错误排查与修正

原规则的核心问题

  • 条件变量使用错误:第一条规则用%{REQUEST_URI}判断主机名,这是完全错误的——%{REQUEST_URI}代表请求路径(比如/或/test123),而非请求的主机名,正确变量应为%{HTTP_HOST}。同时=^abc-dev\.cco\.com的写法矛盾,=是精确匹配,加上^前缀后无法匹配任何合法请求URI,导致这条规则永远不会触发。
  • 逻辑覆盖混乱:原规则第一条本应处理根路径请求,但因条件错误,所有请求都会落到第二条规则,不管是否为根路径,完全不符合需求。

修正后的规则

RewriteEngine On

# 匹配abc-dev.cco.com的根路径请求
RewriteCond %{HTTP_HOST} ^abc-dev\.cco\.com$ [NC]
RewriteRule ^/?$ https://xyz.sp.com/sites/SitePages/abc-migration.aspx [R=301,L]

# 匹配abc-dev.cco.com的带路径参数请求
RewriteCond %{HTTP_HOST} ^abc-dev\.cco\.com$ [NC]
RewriteRule ^(.*)$ https://xyz-curt-dev.cco.com/redir/xyz?u=%{REQUEST_URI}&h=abc-dev.cco.com [R=301,L]

修正说明

  • 第一条规则:通过%{HTTP_HOST}精确匹配目标主机,RewriteRule ^/?$适配根路径请求(/?兼容部分服务器对根路径的解析差异),满足条件时跳转至指定迁移页面。
  • 第二条规则:同样匹配目标主机,^(.*)$覆盖所有非根路径的请求,自动传递原请求路径和主机名到目标地址。
  • [R=301,L]标记:R=301表示永久重定向,L表示执行完当前规则后终止后续处理,避免规则冲突。

内容的提问来源于stack exchange,提问作者Kul Bhushan Prasad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:07:33