📌  相关文章
📜  重定向到 http 到 https .htaccess (1)

📅  最后修改于: 2023-12-03 14:58:11.428000             🧑  作者: Mango

在 .htaccess 文件中重定向 http 到 https

当你有一个安全证书 (SSL Certificate) 安装在你的服务器上并且想要所有的 http 请求被重定向到 https,那么可以使用 .htaccess 文件来实现。

以下是一些代码片段,可以在 .htaccess 文件中实现此功能。

代码片段
1. 重新定向到 https:

以下代码片段将所有 http 请求重定向到 https 链接:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这段代码的意思是当请求的协议不是 https 时,将请求重定向到 https。%{HTTP_HOST} 是请求的主机名,%{REQUEST_URI} 是请求的路径和查询字符串。

2. 强制指定主域名:

以下是一个简单的代码片段,用于将所有请求重定向到指定的主域名(比如 https://www.example.com):

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

这段代码的意思是当请求不是通过 https 访问时,将所有请求重定向到主机名为 www.example.com 的 https 链接。

3. 处理子目录:

如果你想在子目录中使用这些规则,可以使用以下代码:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这个规则与第一部分的规则非常相似,唯一的区别是它没有指定任何子目录。默认情况下,这个规则将工作在所有子目录中,除非你有一个更具限制性的规则来覆盖它。

4. 其他注意点:

以上这些规则都应该放在 .htaccess 文件的顶部,以确保它们能够正常工作。同时,也确保所有的规则都用 HTTPS 替代 HTTP,即所有重定向要使用 301 持久重定向。