2016-05-18 2 views
0

Я создаю сайт головоломки/вызов, который требует, чтобы было два различных набора обслуживаемых файлов, в зависимости от наберется ли или нет пользователь HTTP: или https:HTAccess HTTPS к HTTPS вложенная

Оно не похоже, я могу просто перенаправить весь трафик HTTPS, используя мой веб-хост, в подпапку, поэтому я пытался отредактировать файл htaccess, но я продолжаю заканчивать бесконечными переадресациями.

То, что я пытаюсь сделать:

http://www.example.com/secure -> http://www.example.com 
https://www.example.com   -> https://www.example.com/secure 

Когда я настроить переадресацию, после того, как хромовые раз, я получить https://www.example.com/secure/secure/secure/secure/secure/secure/secure ...

редиректах я установки являются:

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteRule .* https://www.example.com/secure [NC,L,R=301] 

RewriteCond %{HTTPS} off 
RewriteRule ^secure/ http://www.example.com/ [NC,L,R=301] 

Ни одно правило, похоже, не работает, но первое правило похоже на цикл навсегда. Может ли кто-нибудь объяснить, что я делаю неправильно?

+0

Вы действительно хотите, чтобы перенаправлять пользователей или вы просто хотите, чтобы служить два различных набора файлов? –

+0

В идеале я бы обслуживал два совершенно разных сайта с одного и того же хоста. К сожалению, у меня нет возможности редактировать конфигурацию apache. Веб-сайт является частью головоломки, где https и http должны вести себя по-разному. (отредактировано, потому что случайно попал в enter до окончания) –

ответ

0

RewriteCond %{HTTPS} может не работать на всех веб-серверах. Некоторые из серверов используют RewriteCond %{HTTP:X-Forwarded-Proto} https.

Я думаю, что вы должны сделать:

RewriteEngine On 
RewriteCond %{HTTPS} on [OR] 
RewriteCond %{HTTP:X-Forwarded-Proto} https 
RewriteCond %{REQUEST_URI} !^/secure 
RewriteRule ^(.*)$ https://www.example.com/secure [NC,L,R=301] 

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{REQUEST_URI} ^/secure 
RewriteRule ^(.*)$ http://www.example.com/ [NC,L,R=301] 
+0

К сожалению, это не работает, он направляет весь трафик https на http. –

+0

Поиграв с этим некоторое время, я смог заставить его работать, изменив https во второй группе на http и добавив RewriteEngine On выше https off line. Если вы сделаете эти изменения, я помечаю, что они решены. ---- Благодаря :) –

Смежные вопросы