2016-03-23 3 views
2

Поэтому мне пришлось принудительно подключить все соединения через HTTP, чтобы перейти на HTTPS в определенной папке (например, «public_html/folder1»). Я нашел учебник где-то и используется следующее в файле .htaccess:Как заставить HTTP-HTTPS с исключением?

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} folder 
RewriteRule ^(.*)$ https://www.yourdomain.com/folder/$1 [R,L] 

проблема, у меня есть папка внутри этой folder1, которые должны быть разрешено получить доступ через HTTP и HTTPS не только, как я делаю исключение? (это означает, что я хочу, чтобы папка 1/подпапка 1, к которой можно было получить доступ через HTTP).

Благодаря

+0

Могу ли я спросить, почему вы не навязываете https для всего? Это более безопасно и позволяет вам активировать HSTS в вашем домене, что является единственной защитой от атак типа «человек в середине». – Tom

ответ

3

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

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} ^/folder/((?!subfolder).*)$ 

RewriteRule ^(.*)$ https://www.yourdomain.com/folder/$1 [R,L] 

Узор ^/folder/((?!subfolde).*) соответствует запросу Uri строку /folder/.* и оно не матч, когда строка /folder/subfolder/.* поэтому правило не применяется.

+1

Спасибо, что сделали :) – MAR