Назад | Перейти на главную страницу

Перенаправление постоянное / https://www.mysite.com/ exceptions

У меня есть сайт, который полностью обслуживается через ssl. Однако мне нужно разрешить внешнее соединение на одной странице через http.

В настоящее время в моем http.conf у меня есть

<VirtualHost *:80>
..
Redirect permanent / https://www.mysite.com/
..
</VirtualHost>

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

http://www.mysite.com/directory/page.php 

Я попытался добавить следующее, но, конечно, это само по себе работает нормально, но в сочетании с тем, что у меня выше, оно создает циклы перенаправления.

<VirtualHost *:443>
..
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^/directory/page$ http://www.mysite.com/directory/page.php [R=301,L]
..
</VirtualHost>

Попробуй это:

RewriteEngine on

RewriteCond %{HTTPS} on
RewriteRule ^/directory/page$ http://www.mysite.com/directory/page.php [R=301,L]

RewriteCond %{HTTPS} on
RewriteRule ^/directory/page.php  http://www.mysite.com/directory/page.php [R,L]

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/directory/page.php
RewriteRule ^/(.*)  https://www.mysite.com/$1 [R,L]

Вот что в итоге сработало:

# Force HTTPS for entire site
RewriteCond %{HTTPS} !=on
RewriteCond %{THE_REQUEST} !^[A-Z]+\s/directory/page.*$
RewriteRule ^(.*)$ https://www.mysite.com/$1 [R=301,L]

# Force HTTP for a given page
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} ^/directory/page.*$
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]