/ / htaccess не перенаправляє на https - php, apache, .htaccess, redirect

htaccess не перенаправляє на https - php, apache, .htaccess, redirect

У мене є такий код у htaccess

Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /films/

RewriteCond %{REQUEST_METHOD} =POST
RewriteRule ^ - [L]

RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/films/$1 [R=301,L]

Я хочу, щоб він автоматично перенаправляв URL-адресу на https Але це не перенаправлення. Я спробував змінитись

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/films/$1 [R=301,L]

до

RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/films/$1 [R=301,L]

Відповіді:

2 для відповіді № 1

Для переспрямування на https можна скористатися наведеним нижче переспрямуванням у /films/.htaccess :

Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /films/
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ https://www.example.com/films/$1 [R=301,L,NE]

Очистіть кеш браузера перед тестуванням цього перенаправлення.


3 для відповіді № 2

Щоб змусити HTTPs ви можете використовувати:

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Тому залишаючи вас https:// на всьому. В тому числі {REQUEST_URI} краще, ніж вказати каталог. Оскільки це також буде працювати для всіх каталогів.

Як я нещодавно дізнався, краще поєднувати свої вимушені www і https, спробуйте використати це:

RewriteCond %{HTTP_HOST} !^www. [NC,OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=301,L,NE]