Php Apache Mod_重写错误地更改了大小写

Php Apache Mod_重写错误地更改了大小写,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我的root.htaccess文件中有以下规则 RewriteRule ^((?:Paired|Mobile)?Coupon|Raffle)/(\d+)/Image/?$ /product_image.php?type=$1&id=$2 [L,NC] 以及/product_image.php中的以下代码 var_dump([ "REQUEST_URI"=>$_SERVER["REQUEST_URI"], "QUERY_STRING

我的root.htaccess文件中有以下规则

RewriteRule ^((?:Paired|Mobile)?Coupon|Raffle)/(\d+)/Image/?$       /product_image.php?type=$1&id=$2    [L,NC]
以及/product_image.php中的以下代码

var_dump([
        "REQUEST_URI"=>$_SERVER["REQUEST_URI"],
        "QUERY_STRING"=>$_SERVER["QUERY_STRING"]
]);
当我请求/优惠券/9/图像/我得到

array(2) { 
    ["REQUEST_URI"]=> string(16) "/Coupon/9/Image/" 
    ["QUERY_STRING"]=> string(16) "type=Coupon&id=9" 
}
array(2) { 
    ["REQUEST_URI"]=> string(15) "/Raffle/2/Image/"  
    ["QUERY_STRING"]=> string(16) "type=raffle&id=2" 
}
当我请求/抽奖/2/图像/我得到

array(2) { 
    ["REQUEST_URI"]=> string(16) "/Coupon/9/Image/" 
    ["QUERY_STRING"]=> string(16) "type=Coupon&id=9" 
}
array(2) { 
    ["REQUEST_URI"]=> string(15) "/Raffle/2/Image/"  
    ["QUERY_STRING"]=> string(16) "type=raffle&id=2" 
}
抽奖请求查询字符串始终为小写,而优惠券请求中的大小写更改反映在查询字符串中。如何确保查询字符串中保留请求大小写


我在这里询问之前的调试:

  • 删除[No Case]标志会导致抽奖请求出现404错误(不区分大小写);优惠券请求仅与预期的“优惠券”匹配

结果显示“((?:配对的|手机)?优惠券|抽奖)/”与名为“抽奖”的文件夹匹配

结果显示“((?:配对的|手机)?优惠券|抽奖)/”与名为“抽奖”的文件夹匹配

有趣的是,我无法在我这边复制这种行为。我不想问,但你100%确定你的请求是大写的抽奖吗?如果没有,您的
.htaccess
文件中还有什么其他内容吗?我在.htaccess中有其他规则,但为了调试的目的对它们进行了注释。另外,我正在Win 8.0笔记本电脑上运行xampp 5.5.19(Apache 2.4.4)。您在匿名模式下尝试过吗?您的浏览器可能正在缓存来自服务器的以前的响应。有趣的是,我无法复制我这方面的行为。我不想问,但您是否100%确定您的请求是大写的抽奖?如果没有,您的
.htaccess
文件中还有什么其他内容吗?我在.htaccess中有其他规则,但为了调试的目的对它们进行了注释。另外,我正在Win 8.0笔记本电脑上运行xampp 5.5.19(Apache 2.4.4)。您在匿名模式下尝试过吗?您的浏览器可能正在缓存服务器以前的响应。