mod_rewrite $ 1 дает мне неправильное значение - PullRequest
0 голосов
/ 30 января 2012

У меня есть следующий .htaccess в папке / backend:

RewriteEngine On
RewriteBase   /backend
RewriteRule   ^(.*)\.php$   index.php?path=$1   [L]

При посещении http://mysite.com/backend/test/pages/dashboard.php $ _GET ['path'] возвращает строку "index", а не "test / pages /dashboard.php ", как и ожидалось.

Что я делаю не так?Я не могу понять это.

1 Ответ

2 голосов
/ 30 января 2012

Решил это, добавив следующее правило перед другим.

RewriteRule     ^index.php$ - [L]

TerryE указал:

В контексте perdir механизм перезаписи проходит по файлам .htaccess.пока он не получит чистый проход.

Другими словами, mod_rewrite переписывал URL дважды, потому что результат первого перезаписи также соответствовал правилу.

...