Перенаправить HTTPS на HTTP за исключением одного каталога - PullRequest
0 голосов
/ 17 марта 2012

Я прошу прощения за то, что задал вопрос, который был задан в различных других формах, но ни один из ответов, с которыми я сталкивался, не работает для моей конкретной ситуации.

Я хочу перенаправить все страницы в HTTP (черезmod_rewrite), если они не находятся в папке / secure /.

Вот что я пробовал:

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

Другая версия, которая, как утверждали, работала, работала, но в этом случае не работает:

RewriteRule  ^secure/  -  [L]
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^ http://www.thevirtualstagingexperts.com%{REQUEST_URI} [L,R=301]

Я бы предпочел использовать вариант первой версии.Похоже, это должно работать (для меня в любом случае).Кто-нибудь может пролить какую-то строчку на эту тоскливую тему?

Ответы [ 5 ]

0 голосов
/ 10 ноября 2018
%{HTTP_HOST} !\.dev$ [NC]%{HTTP_HOST} ^www\..+$ [NC]
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI
0 голосов
/ 05 февраля 2016

Ваше оригинальное решение сработало для меня, после добавления [R,L] к последнему правилу:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
0 голосов
/ 17 марта 2012

Мне указали, что HTTPS не облагает налогом Apache так, как я думал.По-видимому, большая часть дополнительной нагрузки возникает при установлении соединения.Поскольку на этом этапе клиент уже установил безопасное соединение, было бы хорошо разрешить ему продолжить его.

Если любой, кто читает это, знает, почему правило перезаписи:

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

не работает (он не исключает каталог / secure /, как должно), я хотел бы знать.Я новичок в программировании и не в состоянии понять, что-то подобное действительно попадает мне в голову.

Спасибо, переполнение стека!

0 голосов
/ 20 августа 2013
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/secure/.*
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
0 голосов
/ 17 марта 2012

Re: Вот что я пробовал

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

Я думаю, что вам не хватает косой черты в этом URI: ^/secure.

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