我在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]
我希望它自动将网址重定向到https 但它不是重定向。我试过改变
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/films/$1 [R=301,L]
到
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/films/$1 [R=301,L]
答案 0 :(得分:3)
要强制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]
答案 1 :(得分:2)
要重定向到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]
在测试此重定向之前清除浏览器缓存。