Рекурсивный цикл в моем .htaccess - PullRequest
0 голосов
/ 05 июля 2010

У меня проблема с добавлением запросов php и html для перезаписи по умолчанию в мой apache .htaccess.

Идея состоит в том, чтобы настроить шаблоны для содержимого на моем сайте, указав, что для содержимого в папке используется определенный шаблон. Он отлично работает для HTML, изображений и других ресурсов; запросы переписываются в шаблон красиво. Но я получаю рекурсивную проблему переписывания запроса к php-ресурсам, потому что шаблон также является php-ресурсом ... возможно, достаточно логично.

Можно ли ограничить php-to-php одной перезаписью? Или мне нужен другой подход?

Это правило - моя проблема:

RewriteRule ^(.*).(php$) /_templates/default.php?$1.$2 [NC,L]

Ниже мой .htaccess ...

Спасибо ...

# Template rewrites:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(subpages/.*) /_templates/present.php?$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*).html$ /_templates/default.php?$1 [NC,L]
RewriteRule ^(.*).(php$) /_templates/default.php?$1.$2 [NC,L]

Ответы [ 2 ]

0 голосов
/ 05 июля 2010

Вы можете добавить правило исключения:

RewriteRule /_templates/default.php(.*)$ $ 0 [L]

$ 0 - исходный запрос, а [L] означает, что это последнее правило, по которому будет выполняться этот запрос

0 голосов
/ 05 июля 2010

Вы можете добавить RewriteCond следующим образом:

RewriteCond $1 !^_templates/
RewriteRule ^(.*).php$ /_templates/default.php?$1.php [NC,L,B]

Я также добавил флаг B, потому что вы используете обратную ссылку в строке запроса.

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