mod_rewrite в .htaccess не работает получить - PullRequest
0 голосов
/ 13 октября 2011

У меня есть файл .htaccess в каталоге, который, как предполагается, перенаправляет все запросы в query.php, добавляя запрошенный файл как переменную GET:

RewriteEngine on
RewriteRule ^(.*?)$ query.php?page=$1

Должно работать нормально, верно? За исключением случаев, когда я пытаюсь перейти к anyfile.php, query.php print_r $ _GET выглядит так:

Array ( [page] => query.php )

Мне кажется, что это может быть связано с тем, что Apache переписывает уже переписанный URL или что-то в этом роде.

Короче говоря, меня правильно перенаправляют, но каким-то образом ошибка в GET нарушена.

Кто-нибудь может мне помочь? Я работал над этим целую вечность, и я просто не могу понять это!

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Не изобретайте колесо, посмотрите, что другие используют для этой цели:

Options -MultiViews
RewriteEngine On
# This line checks whether file exists:
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^ index.php [L]

Вы найдете URI страницы в $_SERVER['REQUEST_URI'].Поменяйте index.php на query.php и все готово.

0 голосов
/ 13 октября 2011

Я удивлен, что, честно говоря, вы не получаете ошибку "слишком много перенаправлений".

Добавление RewriteCond, подобного следующему, должно решить проблему.

RewriteCond %{REQUEST_URI} !^query\.php
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...