http重定向到https
- 阿里云服务器:以将HTTP:80访问重定向转发至HTTPS:443为例
创建HTTPS监听-创建HTTP监听配置重定向-开启监听转发,选择目的监听为HTTPS:443。
https://help.aliyun.com/document_detail/89151.html
2、自行部署的Apache
1、在apache中的某个conf文件中使得该行生效(打开ssl模块)
LoadModule ssl_module modules/mod_ssl.so
2、在apache中的某个conf文件中使得该行生效(打开重写模块)
LoadModule rewrite_module modules/mod_rewrite.so
3、修改80端口的配置文件
配置文件路径为/etc/apache2/sites-available
80端口的配置文件名称为 000-default.conf
80端口修改内容为在<VirtualHost *:80></VirtualHost *:80>之间加入以下内容)
版本一 (注意 www.xxxx.com、xxxx.com 中xxx要改成你的域名)
ServerName www.xxxx.com
ServerAlias xxxx.com
RewriteEngine On
RewriteRule ^/(.*?)$ https://www.xxxx.com/$1 [R]
版本二 (注意 www.xxxx.com、xxxx.com 中xxx要改成你的域名)
ServerName www.xxxx.com
ServerAlias xxxx.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
关于版本二命令解释
RewriteEngine On是开启rewrite功能
RewriteCond %{HTTPS} !=on 为不是https的时候执行下面的规则
^(.*) https://%{SERVER_NAME}$1 [L,R] 中 ^ 匹配行的开始
$1引用RewriteRule中的第一个正则(.*)代表的字符, %{SERVER_NAME}就是监听的网站域名,
[L]:结尾标识。停止重写操作,并不再应用其他重写规则。防止本条规则被后续规则影响
R 强制外部重定向
版本一与版本二的区别
1、版本一重定向规则都是使用硬编码,耦合性太强,建议使用版本二
2、版本二的重定向规则的正则表达式比版本一,加入了结尾表示 更加全面,也比较安全
第三步还可修改根目录.htaccess文件(文件内容会被导入到配置文件中)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}