虚拟主机域名注册-常见问题网站推广 → 网站推广问题

怎么设置.htaccess重定向实现强制https访问

  与HTTP不同的是,HTTPS使用TLS/SSL来加密客户端和服务器之间的通信,HTTPS的请求和响应都是以纯文本形式发送和返回的。

  与HTTP相比,使用HTTPS有几个优点,比如:

  所有的数据都是双向加密的。因此,如果被拦截,敏感信息无法读取。

  Chrome、Firefox和其他所有流行的浏览器都会将您的网站标记为安全。

  HTTPS允许您使用HTTP/2协议,这大大提高了网站的性能。

  各搜索引擎也更亲腻于HTTPS网站。如果通过HTTPS服务,您的网站或许能获得更好的排名。

  重定向可以在应用程序或服务器级别设置。下面嘉裕云来介绍下如何使用.htaccess文件将HTTP流量重定向到HTTPS。

  如果你有SSH根权限访问Apache运行的Linux服务器,首选的方法是在域的虚拟主机配置文件中设置重定向。否则,你可以在域名的.htaccess文件中配置重定向。Apache服务器在每次页面请求时都会读取.htaccess文件,这样会使Web服务器的速度变慢。

  大多数控制面板,比如宝塔上都有图形用户界面强制HTTPS重定向。

  1、在 .htaccess中使用以下命令将HTTP重定向到HTTPS

  .htaccess是Apache Web服务器按目录的配置文件。该文件用于定义Apache如何从其放置目录中提供文件以及启用/禁用其他功能。

  通常,该.htaccess文件位于域根目录中,但是您可以.htaccess在子目录中包含其他文件。

  您可以.htaccess通过SSH或FTP编辑文件(或创建一个新文件)。

  要将HTTP请求重定向到HTTPS,请打开.htaccess文件,并添加以下代码:

  RewriteEngine On

  RewriteCond %{HTTPS} off

  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  其中每一行代码的作用:

  RewriteEngine On -启用重写功能,并允许我们使用重写规则。

  RewriteCond %{HTTPS} off-检查连接是否为HTTP请求类型。当条件满足时,执行下一行。我们只想重定向HTTP请求。如果您忽略此条件,则会出现重定向循环。

  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]-使用状态代码301(永久移动)将所有HTTP请求重定向到HTTPS。

  如果文件中还有其他规则,请重写代码添加到顶部。

  添加这些行之后,保存文件并刷新浏览器。所有HTTP请求都应重定向到HTTPS。

  编辑.htaccess文件时,无需重新启动服务器,因为Apache会在每个请求中读取文件。

  下面是另一个从HTTP重定向到HTTPS的通用规则:

  RewriteEngine On

  RewriteCond %{HTTPS} off

  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  HTTP_HOST是访问者在访问站点时请求的主机名。此变量代表您的域名。

  REQUEST_URI 是用于访问页面的URI。

  2、将HTTP重定向为HTTPS,将WWW重定向为非WWW

  可以使用两个URL访问任何网站:带www前缀(例如www.example.com)和不带www(例如example.com)的URL 。大多数网站所有者都选择一个版本作为首选域并重定向到该域。

  要从HTTP重定向到HTTPS,从www重定向到网站的非www版本,请在.htaccess文件中添加以下几行:

  RewriteEngine On

  RewriteCond %{HTTPS} off [OR]

  RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

  RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

  这里我们有两个条件。第一个检查连接是否不是HTTPS,第二个检查请求是否以开头www。如果条件为真([OR]运算符),则执行重写规则。

  将HTTP重定向到HTTPS,将非WWW重定向到WWW

  如果您更喜欢网站的www版本,请使用以下规则从HTTP重定向到HTTPS,从非www重定向到www

  RewriteEngine On

  RewriteCond %{HTTPS} off [OR]

  RewriteCond %{HTTP_HOST} ^example\.com [NC]

  RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

  我们已经向您展示了如何编辑.htaccess文件以将所有HTTP通信重定向到HTTPS。

  如果可以访问Apache配置文件,则为获得更好的性能,应通过在域名虚拟主机中创建301重定向来强制执行HTTPS。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:Ubuntu 20.04 LTS 安装和配置Apache的mod_pagespeed模块的操作方法
下一篇:MongoDB实例中如何启用身份验证
  >> 相关文章
没有相关文章。
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部