📅  最后修改于: 2023-12-03 14:58:11.428000             🧑  作者: Mango
当你有一个安全证书 (SSL Certificate) 安装在你的服务器上并且想要所有的 http 请求被重定向到 https,那么可以使用 .htaccess 文件来实现。
以下是一些代码片段,可以在 .htaccess 文件中实现此功能。
以下代码片段将所有 http 请求重定向到 https 链接:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这段代码的意思是当请求的协议不是 https 时,将请求重定向到 https。%{HTTP_HOST}
是请求的主机名,%{REQUEST_URI}
是请求的路径和查询字符串。
以下是一个简单的代码片段,用于将所有请求重定向到指定的主域名(比如 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 链接。
如果你想在子目录中使用这些规则,可以使用以下代码:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这个规则与第一部分的规则非常相似,唯一的区别是它没有指定任何子目录。默认情况下,这个规则将工作在所有子目录中,除非你有一个更具限制性的规则来覆盖它。
以上这些规则都应该放在 .htaccess 文件的顶部,以确保它们能够正常工作。同时,也确保所有的规则都用 HTTPS 替代 HTTP,即所有重定向要使用 301 持久重定向。