HTTP 80 强制转 HTTPS
全站采用https协议访问,所以需要http重定向到https,只需要在.htaccess加入下面规则
在相应的网站根目录新建 .htaccess
例如,在博客的网站根目录下,新建 .htaccess
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
或者
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
规则说明:
RewriteCond 表示符合条件(Condition),RewriteRule 表示重写规则
1)RewriteCond %{SERVER_PORT} 80 表示符合条件 SERVER_PORT 请求端口号是 80,则重写
2)RewriteCond %{HTTPS} !=on 表示符合条件 HTTPS 请求协议不是 https(没有开启),则重写
强制301重定向 HTTPS
一般位于 .htaccess 文件内,例如:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^yooer.me$ [NC]
RewriteRule ^(.*)$ https://yooer.me$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
</IfModule>
高级用法 (可选)
RewriteEngine on
# 强制HTTPS
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{SERVER_PORT} 80
# 某些页面强制
RewriteCond %{REQUEST_URI} ^something_secure [OR]
RewriteCond %{REQUEST_URI} ^something_else_secure
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# 强制HTTP
RewriteCond %{HTTPS} =on [OR]
RewriteCond %{SERVER_PORT} 443
# 某些页面强制
RewriteCond %{REQUEST_URI} ^something_public [OR]
RewriteCond %{REQUEST_URI} ^something_else_public
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]