Принудительно использовать HTTPS для некоторых страниц и папок и HTTP для всех остальных. - PullRequest
0 голосов
/ 06 июня 2018

У меня есть .htaccess, и я хочу перенаправить example.com/login, example.com/profile и example.com/form.php, он работает только для папки, но не работает для страниц.

Вот мой .htaccess

Options +FollowSymLinks -MultiViews
DirectoryIndex index.php

RewriteEngine On

# Force HTTP to HTTPS
RewriteCond %{HTTPS} =off [NC]
RewriteCond %{THE_REQUEST} /(login|profile|form\.php) [NC]
RewriteRule ^(login|profile|form\.php) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]


# Force HTTPS to HTTP
RewriteCond %{HTTPS} =on [NC]
RewriteCond %{THE_REQUEST} !/(login|profile|form\.php) [NC]
RewriteRule !^(login|profile|form\.php) http://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]

Итак, если мой пользователь входит в http://example.com/login, он перенаправляется на https://example.com/login.То же самое для страницы профиля.

Но для отдельных страниц, таких как example.com/form.php, это не работает

Пожалуйста, помогите мне написать это правильно.

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете использовать эти правила:

Options +FollowSymLinks -MultiViews
DirectoryIndex index.php
RewriteEngine On

# Force HTTP to HTTPS
RewriteCond %{HTTPS} =off [NC]
RewriteCond %{THE_REQUEST} \s/+(login|profile|form\.php) [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]


# Force HTTPS to HTTP
RewriteCond %{HTTPS} =on [NC]
RewriteCond %{THE_REQUEST} !\s/+(login|profile|form\.php) [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]

# more rules go below this line

Обязательно проверьте это в браузере или полностью очистите кэш браузера.

...