宝塔部署https(ssl证书)后设置301跳转 http跳转到https的方法

2019-11-23 17:40:37 编辑:七云网络 来源:本站原创

注意,以下教程针对我司SSL虚拟主机部署SSL后的301跳转,把规则中红色域名替换成自己的,如果出现您重定向的次数过多,一定是规则出错!

 

linux内核操作系统 apache环境

【直接在apache上部署的SSL】通用方法:在对应网站根目录下新建一个文件命名为.htaccess 保存即可。

  • 宝塔面板:登录面板后-网站-对应的网站设置-伪静态-保存
  • wdcp管理面板:站点列表-文管-进入public_html-创建文件

apache环境

编辑.htaccess文件写入以下规则:www.abc.com对应修改为您自已的域名

  • <IfModule mod_rewrite.c>
  • RewriteEngine On
  • RewriteCond %{HTTP:From-Https} !^on$ [NC]
  • RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L]
  • RewriteCond %{HTTP_HOST} !^www\.
  • RewriteRule ^(.*)$ https://www.abc.com$1 [R=301,L]
  • </IfModule>

apache环境下只有一个二级域名的情况下使用: 需要nginx规则的转换下就可以了

  • <IfModule mod_rewrite.c>
  • RewriteEngine On
  • RewriteCond %{HTTP:From-Https} !^on$ [NC]
  • </IfModule>

Nginx环境

通用方法:在对应网站根目录下新建一个文件命名为.htaccess 保存即可。

  • 方法一:
  • if ($http_from_https !~* "^on$"){
  • set $rule_0 1$rule_0;
  • }
  • if ($rule_0 = "1"){
  • rewrite ^/(.*)$ https://www.abc.com/$1 permanent;
  • }
  • if ($http_host !~ "^www\."){
  • set $rule_1 1$rule_1;
  • }
  • if ($rule_1 = "1"){
  • rewrite ^/(.*)$ https://www.abc.com$1 permanent;
  • }
  • 方法二:nginx-对应站点配置文件,添加以下规则
  • server
  • {
  • listen 80;
  • server_name abc.com;
  • rewrite ^(.*) https://www.abc.com$1 permanent; # abc.com对应修改为您自已的域名
  • }

 


Windows系统 II7环境

【直接在IIS上部署的SSL】在对应网站的根目录下新建一个文件命名为web.config并编辑添加以下规则:

  • <?xml version="1.0" encoding="UTF-8"?>
  • <configuration>
  • <system.webServer>
  • <rewrite>
  • <rules>
  • <rule name="301" stopProcessing="true">
  • <match url="^(.*)$" ignoreCase="false" />
  • <conditions logicalGrouping="MatchAll">
  • <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />
  • <!-- <add input="{HTTPS}" pattern="^on$" negate="true" /> --> # 非亚数机房用这一行替换上一行规则
  • </conditions>
  • <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> # www.abc.com对应修改为您自已的域名
  • </rule>
  • </rules>
  • </rewrite>
  • </system.webServer>
  • </configuration>


Windows系统 II6环境

参考http://www.west.cn/faq/list.asp?unid=650 配置一个Rewrite,编辑该Rewrite的规则文件httpd.conf 添加以下规则

  • RewriteEngine On
  • RewriteCond %{HTTP:From-Https} !^on$ [NC]
  • #RewriteCond %{HTTPS} !^on$ [NC] # 非亚数机房用这一行替换上一行规则
  • RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L] # www.abc.com对应修改为您自已的域名
  • RewriteCond %{HTTP_HOST} !^www\.
  • RewriteRule ^(.*)$ https://www.abc.com$1 [R=301,L] # www.abc.com对应修改为您自已的域名

tomcat环境

web.xml最后一行</web-app>代码之前添加如下代码即可

  • <security-constraint>
  • <!-- Authorization setting for SSL -->
  • <web-resource-collection >
  • <web-resource-name >SSL</web-resource-name>
  • <url-pattern>/*</url-pattern>
  • </web-resource-collection>
  • <user-data-constraint>
  • <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  • </user-data-constraint>
  • </security-constraint>

注意事项:

1、discuz使用301方式强制将http跳转到https后会导致后台uc通信失败。
2、通过该方式设置跳转后,如无法正常跳转访问,请单独建立站点绑定https域名,仍在原来站点设置跳转规则。

本站文章均为英德网站建设网络原创文章或转载,如有版权纠纷,请联系站长QQ删除