RewriteRule поможет направить и из http / https - PullRequest
0 голосов
/ 29 марта 2011

В моем конфигурационном файле Apache у меня есть следующее для перенаправления на https, если в имени страницы есть логин:

<VirtualHost 1.2.3.4:80>
    -- snip --

    RewriteEngine On
    RewriteRule ^/(.*)login(.*) https://domain/$login$2 [L]
</VirtualHost>

А вот та часть, с которой у меня проблемы. Я хочу перенаправить каждую страницу, которая не соответствует ^/(.*)login(.*), обратно на http.

<VirtualHost 1.2.3.4:443>
    -- snip --

    RewriteEngine On
    RewriteRule ^/(.*) http://domain/$l [L]
</VirtualHost>

Но, как я понял, я создал циклическое переписывание.

Чего мне не хватает?

p.s., IP 1.2.3.4 является поддельным. :)

Ответы [ 2 ]

0 голосов
/ 30 марта 2011

Это решило мою проблему:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(.*)login(.*)
RewriteRule ^/(.*) http://domain/$1 [L]
0 голосов
/ 30 марта 2011

Не проверено, но должно работать с:

RewriteEngine On
RewriteRule ^(.*)login(.*) https://domain/${REQUEST_URI} [L]
RewriteRule (.*[^l][^o][^g][^i][^n].*) http://domain/${REQUEST_URI} [L]

Возможно, вы также можете забыть о совпадении (.*[^l][^o][^g][^i][^n].*) qnd replace на .*, поскольку [L] должно помешать HTTPS-запросу совпадатьпосле их переиздания.Быть проверенным.

...