本文作者:非李莫属

网站启用SSL自动301跳转到HTTPS教程推荐

非李莫属 1周前 ( 07-11 08:54 ) 241 8条评论
网站启用SSL自动301跳转到HTTPS教程摘要: 服务器搭建之后就一直在使用宝塔,先抛出安全性能之外,宝塔真的是不错啦,我之前用过许多的控制面板(没办法,技术能力有限,只能用带控制面板的)最好发现还是宝塔比较符合大众的操作习惯,当...

服务器搭建之后就一直在使用宝塔,先抛出安全性能之外,宝塔真的是不错啦,我之前用过许多的控制面板(没办法,技术能力有限,只能用带控制面板的)最好发现还是宝塔比较符合大众的操作习惯,当然收费的amh我也用过,效果不如宝塔,如果想使用宝塔请前往:宝塔服务器面板,送你3188元礼包,点我领取,emmmm有点跑题,我是说想,宝塔有很多功能已经集成了,不需要额外的配置文件,比如今天说的启用SSL后,让网站的http自动跳转到https上。如果你的主机不是宝塔,那么参照以下教程试试,也许会有惊喜(记得备份,否则惊喜可能变成惊吓),先说Apache强制301跳转到https教程:

SSL自动跳转到HTTPS.jpg

Apache自动跳转到 HTTPS

打开网站根目录 .htaccess文件(如果不存在则新建)

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

301跳转:(推荐)

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
</IfModule>

站点绑定多个域名,只允许www.gworg.com 跳转

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

###把网址更改为自己的###

高级用法 (可选)

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]

Nginx 自动跳转到HTTPS

方法一: 

rewrite ^(.*)$ https://$host$1 permanent;

方法二:

适用于 80端口和443 配置在同一个 server{}内

if ($server_port = 80) {
    rewrite ^(.*)$ https://$host$1 permanent;
}

其他情况, 站点绑定很多域名,只让某个域名跳转:

set $redirect_https 1;
if ($server_port = 80) {
set $redirect_https "${redirect_https}2";
}
if ($http_host = 'www.gworg.com') {
set $redirect_https "${redirect_https}3";
}
if ($http_host = 'gworg.com') {
set $redirect_https "${redirect_https}3";
}
if ($redirect_https = "123") {
rewrite ^(.*)$ https://$host$1 permanent;
}

配置示例:

server {
listen       80;
server_name  www.gworg.com;
rewrite ^ https://$http_host$request_uri? permanent;
}
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/cacert.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
server_name www.gworg.com;  
server_tokens off;
location / {
fastcgi_param   HTTPS               on;
fastcgi_param   HTTP_SCHEME         https;
}
}

关于配置有些网站因为开启了伪静态某些规则已经存在,那么删除相同的代码即可,然后保存,查看是否跳转成功,未成功的可以留言给我,一起研究一起学习。Nginx可能比较难,因为不能向Apache那样可以新建文本来实现,nginx只能在配置文件修改,如果有有错误就可能导致网站无法打开或者出现500等错误代码,所以修改配置文件之前一定要先备份,备份,再备份。

文章版权及转载声明:

作者:非李莫属本文地址:https://www.talklee.com/blog/417.html发布于 1周前 ( 07-11 08:54 )
文章转载或复制请以超链接形式并注明出处李洋个人博客

分享到:
赞(4

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

【数字生态,钜惠来袭】云服务器限时秒杀,首购1核1G 99元/年

发表评论

快捷回复:

评论列表 (有 8 条评论,241人围观)参与讨论
网友昵称:null
null 游客2019-07-18板凳 回复 WeChat 7.0.5.1440 Android 8.1.0
路过,评论。。。
网友昵称:非李莫属
非李莫属 博主2019-07-18 回复 Sogou Explorer Windows 10 x64
@null 3Q路过!
网友昵称:sdfs
sdfs 游客2019-07-11椅子 回复 Google Chrome 75.0.3770.80 Windows 10 x64
nginx只能在配置文件修改,如果有有错误就可能导致网站无法打开或者出现500等错误代码,所以修改配置文件之前一定要先备份,备份,再备份。
网友昵称:非李莫属
非李莫属 博主2019-07-12 回复 Sogou Explorer Windows 10 x64
@sdfs 恩?
网友昵称:路人甲
路人甲 游客2019-07-11沙发 回复 QQBrowser 10.4.3588.400 Windows 7 x64
如何解决:输入 abc.com 或 www.abc.com 自动跳转到 https://www.abc.com。
我的办法是:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.abc.com/$1 [L,R=301]
网友昵称:非李莫属
非李莫属 博主2019-07-12 回复 Sogou Explorer Windows 10 x64
@路人甲 可以!
网友昵称:维特
维特 游客2019-07-17 回复 Google Chrome 74.0.3729.169 Windows 10 x64
@非李莫属 如何强制某一个页面用HTTP打开 老李
网友昵称:非李莫属
非李莫属 博主2019-07-17 回复 Sogou Explorer Windows 10 x64
@维特 这个貌似办不到~~