Проблемы с модулем перезаписи и шаблонами отрицания - PullRequest
0 голосов
/ 27 июля 2010

У меня следующая проблема:

  • Если URL содержит ключевое слово "formulario -" и это http соединение, я хочу перенаправить на https версию.
  • Если URL не содержит ключевое слово "formulario -" иэто https соединение, я хочу перенаправить на http версию.

Я попробовал следующий .htaccess, но он не работает должным образом:

RewriteEngine On

RewriteCond %{HTTPS} =on
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTPS} !=on
RewriteRule ^formulario-(.*) http://%{HTTP_HOST}%{REQUEST_URI}

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 27 июля 2010

Не проверено, но общая идея такова:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule formulario- https://%{HTTP_HOST}%{REQUEST_URI} [R,L,QSA]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !formulario-
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R,L,QSA]

Теория заключается в том, что вы не можете отрицать RewriteRule, но вы можете отрицать RewriteCond.

1 голос
/ 27 июля 2010

Что именно не работает?

Одна вещь, которая приходит в голову: попробуйте использовать флаг [L] для первого правила, чтобы apache прекратил обработку второго правила, если первое правило применимо.

Я не уверен, что это все же.Возможно, вам нужен какой-то способ проверить, был ли пользователь уже перенаправлен ранее.

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