Вопрос

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

У меня есть следующее в моем .htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^view/([0-9]+)/([0-9]+)$ view.php?advertId=$1&publisherId=$2 [NC,QSA,L]

Который должен переводить /view/4093/ 203?qs=val -> /view.php?advertId=4093&publisherId=203?qs=val

Теперь это работает при вызове его с помощью /View ... , но при выполнении lowercase /view оно перенаправляет на нужный файл, но advertId и publisherId не заданы в моем PHP-скрипте, как в представлении с заглавной первой буквой, и я просто не имею ни малейшего представления о том, что происходит на этом фронте (я тестировал и наблюдал за этим поведением, просто выполняя a в моем PHP-скрипте view.php ).

Кто-нибудь знает, почему это происходит?

Возможно, я захочу добавить, что информация о моем сервере выглядит следующим образом:

Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 

Т.е.стандартная установка нового debian с пакетами debian по умолчанию + php-mssql.

Это было полезно?

Решение

MultiViews может вызвать такое поведение, которое заключается в попытке сопоставить запрос с аналогичным существующим файлом перед передачей запроса в mod_rewrite.Попробуйте отключить его:

Options -MultiViews
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top