Перенаправить что-нибудь в один файл php с переписыванием URL - PullRequest
1 голос
/ 30 сентября 2011

Я пытаюсь перенаправить что-нибудь в мой файл index.php, чтобы выполнить перенаправление самостоятельно.

Если я использую это:

#RewriteRule ^(.+)$ index.php?path=$1%{QUERY_STRING} [L]

но это не работает, потому что оно "зацикливается" на правиле.

Это работает:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]
</IfModule>

но я хочу перенаправить его, даже если это существующий файл или каталог (я сделаю специальные маршруты для изображений, js и т. Д., Чтобы перенаправить их с помощью php без загрузки какого-либо скрипта.

На самом деле, если бы был флаг "без петель", это было бы хорошо.

Кто-нибудь знает решение?

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 сентября 2011

Замените два шаблона Cond проверкой, чтобы убедиться, что вы нажимаете index.php:

RewriteCond %{REQUEST_URI} !^index.php
RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]

, который будет перенаправлять все, за исключением попаданий в index.php (для предотвращения циклов).

0 голосов
/ 30 сентября 2011

Вот один из способов избежать зацикливания:

RewriteRule ^(?!index\.php)(.+)$ index.php?path=$1%{QUERY_STRING} [L]

Использует отрицательный прогноз (?!), чтобы увидеть, содержит ли строка index.php .Если это не так, продолжайте переписывать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...