Apache Mod_Rewrite ошибочно меняет регистр

1

У меня есть следующее правило в моем корневом файле.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" 
}

Когда я запрашиваю /Raffle/2/Image/I get

array(2) { 
    ["REQUEST_URI"]=> string(15) "/Raffle/2/Image/"  
    ["QUERY_STRING"]=> string(16) "type=raffle&id=2" 
}

Запрос лотереи query_string всегда имеет строчные значения. В то время как изменения в запросе купона зеркалируются в query_string. Как обеспечить, чтобы запрос был сохранен в query_string?


Моя отладка, прежде чем спрашивать здесь:

  • Удаление флага [Нет случая] вызывает ошибку 404 для запроса лотереи (независимый от случая); запрос купона соответствует только "Купону", как ожидалось.
  • 0
    Интересно, что я не могу повторить это поведение на моей стороне.
  • 0
    Ненавижу спрашивать, но уверены ли вы, что ваш запрос на Raffle прописных букв был на 100%? Если нет, что-нибудь еще в вашем файле .htaccess ?
Показать ещё 2 комментария
Теги:
.htaccess
mod-rewrite

1 ответ

0
Лучший ответ

Выключает "((?: Парный | мобильный)? Купон | Raffle)/" соответствует папке с именем "лотерея".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню