ограничить доступ https с помощью .htaccess для всего, кроме 1 папки - PullRequest
0 голосов
/ 12 февраля 2012

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

Структура папки:

  1. foldera
  2. folderb
  3. https_folder
  4. folderc

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

перенаправление для http / https_folder

RewriteCond %{SERVER_PORT} = 80
RewriteRule ^https_folder/?$ https://%{HTTP_HOST}%/httpd_folder [R=301,QSA,L,NE]

перенаправление для https не / рыночных страниц

RewriteCond %{SERVER_PORT} =443
RewriteCond %{REQUEST_URI} !^/https_folder [NC]
RewriteRule ^/?(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Любая помощь будет оценена

Ответы [ 2 ]

0 голосов
/ 12 февраля 2012

Поместите этот код в ваш файл .htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

# redirect to https if URI has https_folder
RewriteCond %{HTTPS} off
RewriteRule ^https_folder/? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC]

# redirect to https if URI doesn't have https_folder
RewriteCond %{HTTPS} on
RewriteRule ^(?!https_folder/?)(.*)$ http://%{HTTP_HOST}/$1 [R=301,L,NC]
0 голосов
/ 12 февраля 2012

Сделайте это:

RewriteCond %{REQUEST_URI} /https_folder/? [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(https_folder)(/.*)?$ https://%{HTTP_HOST}/$1$2 [R=301,L,NE]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !/https_folder/? [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L,NE]
...