Помогите с правилом перезаписи, которое не работает - PullRequest
1 голос
/ 05 октября 2009

Я использую следующее правило перезаписи, но не могу заставить его работать:

RewriteRule  ^rates/([a-z]+)\.php$  /rates.php?c_user_action=view_type&vehicle_type=$1  [QSA,L,NC]

URL-адрес, который я использую: http://www.example.com/rates/motorhomes.php

На данный момент он просто собирается в /rates.php без строки запроса.

Странно, если я изменил выражение перезаписи на ^rates-([a-z]+)\.php$, а URL-адрес на http://www.example.com/rates-motorhomes.php, тогда это сработает.

Я использовал что-то подобное на других сайтах / серверах без каких-либо проблем, но я не могу понять, что я делаю здесь неправильно. Этот сервер работает под управлением Apache 2.2.

Я знаю, что mod_rewrite работает, потому что работают следующие 2 правила:

RewriteRule  ^blah([a-z]+)\.php$  /rates.php?test=$1  [L]
RewriteRule  ^(.*)\.[\d]+\.(css|js)$  $1.$2  [L]

1 Ответ

3 голосов
/ 05 октября 2009

Это, вероятно, MultiViews , которое вызывает такое поведение, отображая /rates/motorhomes.php в /rates.php/motorhomes.php перед передачей запроса через mod_rewrite. Попробуйте отключить его:

Options -MultiViews
...