如何将HTTP重定向到HTTPS教程(2023年最新)
本指南将深入探讨如何从 HTTP 重定向到 HTTPS。我们将了解什么是 HTTP 和 HTTPS、重定向为何如此重要,以及如何通过域名托管服务商设置重定向。
以下是本指南的内容提要:
[lwptoc depth="1" numeration="decimalnested" numerationSuffix="none" title="" toggle="0"]什么是 HTTP 和 HTTPS?
HTTP 和 HTTPS 都是传输协议的类型。HTTP(或超文本传输协议)是我们用来从浏览器访问网络的传统协议。
作为用户,您可以使用 HTTP 通过将其作为前缀添加到 Web 地址来创建请求,因此,您会看到您正在寻找的内容。
HTTP 基本上是一个信使,它将您的请求传送到 Web 服务器并返回您想看到的内容。
您在搜索栏中用于执行所有操作的 URL 如下所示:
HTTPS 是“超文本传输安全协议”的首字母缩写词。“安全”表示与 HTTP 不同,HTTPS 网页具有额外的安全层。
这是通过 SSL 加密(通过第三方供应商的安全证书)提供的,并确保您与服务器的连接安全。额外的安全性降低了第三方攻击者访问您与站点共享的任何数据的风险。
为了建立安全连接,客户端(例如,您的浏览器)和服务器相互联系。客户端连接到服务器,服务器通过数字证书发回其标识。两者都使用 HTTPS 传输这些数据,就像使用 HTTP 一样。
您在搜索栏中看到的网址如下所示:
为什么要更改为 HTTPS?
谷歌在 2014 年宣布将使用HTTPS作为排名信号,以鼓励网站证明他们将尽可能保证用户数据的安全。
作为网站所有者,使用 HTTPS 是向用户表明您的网站合法且安全的另一种方式。
本质上,使用 HTTPS 协议向用户展示了您拥有 EAT 因素:专业知识、权威性和可信度。
如何从 HTTP 重定向到 HTTPS
在您的网站上设置从 HTTP 到 HTTPS 的重定向将取决于您网站的主机。但是,在查看细节之前,您可以先处理一些初步的事情:
- 为您的站点选择 SSL 证书
- 告诉 Google 您的新协议
- 更新您的内部链接
1. 为您的站点选择证书
为了使一切正式化,您需要获得安全套接字层 (SSL) 证书。SSL 证书是第三方确认您的连接和站点是合法的。
SSL 证书将包括:
- 服务器名称
- 证书颁发机构
- 服务器的公共加密密钥。
SSL 证书对您的站点和用户之间的消息进行加密。它将防止他们阅读或窃取私人信息,例如信用卡详细信息或密码。
2. 告诉谷歌你的新协议
Google 将一个网站的 HTTP 和 HTTPS 版本视为两个不同的网站,因此将您的重定向告知他们很重要。您需要确保用户在尝试访问时被定向到您网站的正确版本。
首先前往您的 Google Search Console 帐户以验证您网站的 HTTPS 版本。
请确保您使用的电子邮件地址与您用于 Google Analytics 帐户的电子邮件地址相同,以确保您对该域的所有权得到确认。
转移可能需要几天时间。
3. 更新您的内部链接
对重定向进行排序后,就该检查您的内部链接是否具有 HTTPS URL 并继续正常工作。您可以通过使用站点抓取工具扫描任何可疑链接来检查需要更改的内容。我们推荐我们的站点审计工具。
如何在 WordPress 中重定向到 HTTPS
如果您通过 WordPress 运行您的网站,有几种不同的方法可以将 HTTP 重定向到 HTTPS。
- 使用插件
- 手动编辑 WordPress 文件
我们现在将带您完成这些步骤!
1. 使用插件
对于初学者来说,这是一个超级简单的方法。首先,安装一个 SSL 插件,然后激活它。该插件会自动执行以下操作:
- 检查您的 SSL 证书
- 指示 WordPress 在 URL 中使用 HTTPS
- 设置重定向
- 查找仍然通过 HTTP 加载的任何 URL 并重定向它们
安装后,您需要在您的站点上保持插件处于活动状态;停用它可能会导致性能和内容错误。
2.手动编辑WordPress文件
要编辑您的 WordPress 文件,请访问您的常规设置并将您的 WordPress 和站点 URL 地址更新为 HTTPS 而不是 HTTP。
然后在 .htaccess 文件中设置重定向:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
[L,R=301] </IfModule>
是否看起来很混乱?这是细分:
- “
RewriteEngine On
”:启用重写 - “
RewriteCond %{HTTPS} off
”:检查 HTTP 连接 - “
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUSEST_URI} [L,R=301]
” :使用 301 状态代码将 HTTP 重定向到 HTTPS
现在 WordPress 应该使用 HTTPS 加载您的网站!
如何在 Nginx 中进行 HTTP 重定向
如果您使用 Nginx 托管,有几种方法可以将您的 HTTP 重定向到 HTTPS。
- 将所有 HTTP 站点重定向到 HTTPS
- 重定向特定站点
让我们更详细地回顾一下它们。
1. 将所有 HTTP 站点重定向到 HTTPS
当您知道您希望所有站点都专门使用 HTTPS 时,可以使用此方法。您只需更改 Ngnix 配置文件:
server {listen 80;listen [::]:80 default_server;server_name _;return 301 https://$host$request_uri;}
- “
listen 80 default_server
”:建立服务器块作为任何不匹配域的默认值 - “
return 301 https://$host$request_uri
”:将任何流量重定向到正确的 HTTPS 服务器块;$host 保存请求域名。
2. 重定向特定站点
如果您有多个应用程序或站点并且不需要每个应用程序或站点都需要 SSL 证书,则这是首选选项。同样,只需对代码进行简单的更改:
server { listen 80; server_name example.com; www.example.com; return 301 https://example.com$request_uri;}
如您所见,此代码并未指定“默认服务器”。相反,它侧重于特定的主机名。让我们分解一下:
- “
listen 80
”确保服务器块将“侦听”端口 80 (HTTP) 上的任何连接 - “
server_name example.com; www.example.com
”确保指定服务器域名。当然,您的域名应该被替换为“example”。 - “
return 301 https://example.com$request_uri
”确保流量被重定向到网站的 HTTPS 版本。“301”创建到特定 URI 的重定向并将用户发送到 HTTPS 版本。
您需要重新启动或重新加载 Nginx 才能使更改生效。从那里,您将准备好出发!
如何在 Windows IIS 中重定向到 HTTPS
如果您使用 Windows IIS,在您的站点上从 HTTP 重定向到 HTTPS 有两个关键步骤。我们将更详细地探讨它们。
第1步
- 下载 IIS URL 重写模块
- 进入 IIS 管理器并选择需要重定向的网站
- 选择 URL 重写
- 单击添加规则,选择空白规则,然后输入您的规则名称。按如下方式填写以下弹出窗口:
- 在下一个窗口中,进行以下编辑:
- 这将带您进入操作部分。在这里,您应该进行以下更改:
- 点击申请!
第2步
- 在您的 IIS 仪表板上,右键单击您的站点,然后选择探索。
- 打开 web.config 文件。
- 添加以下代码块(如果它还没有)
<configuration><system.webServer><rewrite><rules><rule name="HTTPSforce" enabled="true" stopProcessing="true"><match url="(.*)" />
<conditions><add input={HTTPS}"pattern="OFF$"/></conditions><action type="Redirect" url=https://{HTTP_HOST}/{R:1} redirectType="Permanent" /></rule> </rules></rewrite></system.webServer></configuration>
如何在 Apache 中进行 HTTP 重定向
如果您使用 Apache,进行切换也很容易。
如果您可以访问根服务器,则在 Apache 虚拟主机域配置文件中设置重定向很简单。如果你不能,那么你可以进入你的 .htaccess 文件并在那里进行更改。
使用 Apache 虚拟主机重定向
当您使用虚拟主机时,您指定通用站点文档根目录,然后为单独的站点自定义安全策略。
使用一个简单的重定向指令,如下所示:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/
<VirutalHost *:443> ServerName example.com ServerAlias www.example.com
更详细地说,所有这些都非常简单:
- “
VirtualHost *:80
”:侦听您指定域的 80 端口 (HTTP) 上的连接 - “
VirtualHost *:443
”:侦听 443 端口 (HTTPS) 上的连接 - 将“ServerName”和“ServerAlias”替换为您的域名
- “永久重定向/https://example.com/”可以将流量重定向到 HTTPS 站点。
重新启动您的服务器。
使用.htaccess 重定向
如果您使用 .htaccess 进行重定向,您将需要 mod_rewrite 模块——但别担心,这是大多数服务器上的默认设置。
只需打开您的根 .htaccess 文件并添加以下代码:
RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://example.com/$ [L,R=301]
让我们深入了解一下:
- “
RewriteEngine On
”:启用重写 - “
RewriteCond %{HTTPS} off
”:检查 HTTP 连接 - “
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
”:这将 HTTP 重定向到带有 301 状态代码的 HTTPS。只要确保您将域名放在“示例”所在的位置!
使用 .htaccess 重定向的好处是您无需重新启动任何内容即可生效。
总结
就是这样!现在您知道如何将您的 HTTP 站点重定向到 HTTPS,为什么它如此重要,以及如何通过安全站点赢得用户的信任。