У мене є такий код у 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]