.htaccess бесконечный цикл, как остановить - PullRequest
1 голос
/ 22 ноября 2011

У меня есть несколько правил .htaccess, которые я хотел бы объединить. Вот суть того, чего я хочу достичь:

  1. jethro.mysite.com -> Перенаправляет на -> gallery.mysite.com/?username=jethro&page_name=Home (примечание: имя_страницы is = Home, если еще не указано)

  2. jethro.mysite.com / ajax / dir / script.php -> Перенаправляет на -> gallery.mysite.com/ajax/dir/script.php

  3. Все остальное обрабатывается как обычно. Пример: jethro.mysite.com/includes/blah.css -> Перенаправляет на -> gallery.mysite.com/includes/blah.css

Пока мой .htaccess, расположенный на jethro.mysite.com, выглядит следующим образом, но я получаю бесконечный цикл:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^jethro.mysite.com [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule (.*) http://jethro.mysite.com/?username=jethro&page_name=Home [P]
RewriteCond %{QUERY_STRING} page_name=script
RewriteRule (.*) http://gallery.mysite.com/ajax/dir/script\.php [P]
RewriteCond %{QUERY_STRING} page_name=(.*)
RewriteRule (.*) http://gallery.mysite.com/?username=jethro&page_name=%1 [P]

Если я отключу 5-ю и 6-ю строки выше, цикл больше не будет выполняться. Пожалуйста, помогите, как мне объединить эти идеи? Спасибо!

1 Ответ

0 голосов
/ 22 ноября 2011

Попробуйте следующее.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^jethro.mysite.com [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule . http://jethro.mysite.com/?username=jethro&page_name=Home [P,L]


RewriteCond %{QUERY_STRING} page_name=script [NC]
RewriteRule . http://gallery.mysite.com/ajax/dir/script\.php [P,L]

RewriteCond %{QUERY_STRING} page_name=(.*) [NC]
RewriteCond %1 !=script            [NC]
RewriteRule . http://gallery.mysite.com/?username=jethro&page_name=%1 [P,L]

Я также предполагаю, что [p] является преднамеренным, т.е. вы хотите прокси-запрос на запрос.

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