如何使用 .htaccess 正确地将 HTTP 301 重定向到 HTTPS?

Posted

技术标签:

【中文标题】如何使用 .htaccess 正确地将 HTTP 301 重定向到 HTTPS?【英文标题】:How to 301 redirect HTTP to HTTPS properly with .htaccess? 【发布时间】:2016-11-29 09:51:56 【问题描述】:

我的目标是通过 htaccess 将我的域名的所有变体 301 永久设为 https://*.com。另外,这是实现它的最佳方法吗?

例如,http://http://www。和https://www。 >>https://

我希望它的所有文件和/或子目录也都是 https://。

【问题讨论】:

【参考方案1】:

你可以简单地这样做。

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

请确保在尝试这些新规则之前清除浏览器缓存。让我知道这是怎么回事。

【讨论】:

嗨,感谢您的回复 --- 但是,我希望所有 301 的 http、http www 和 https www 都只是 https:// --- 当然它的子目录和文件可以登陆 https :// 以及 - 请协助 对你有用吗?如果是这样,请通过选中答案旁边的复选框来接受答案。 你测试了吗?它正是这样做的。你可以在这里测试它。 htaccess.madewithlove.be 当输入 https www 示例时,它不会 301 转为 https 示例......它仍然是 https www 那是你的问题。 规则运行良好。您必须拥有有效的证书才能使其正常工作。 SSL 握手连接发生在重定向之前。您可以阅读我的其他答案***.com/a/32143677/330987 的更多信息。当您安装有效的证书时,它将起作用。

以上是关于如何使用 .htaccess 正确地将 HTTP 301 重定向到 HTTPS?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确设置 Kohana 的 .htaccess,使 URL 中没有丑陋的“index.php/”?

如何在不丢失 Google 索引的情况下正确地将网站从 http 重定向到 https

.htaccess - 递归地将斜杠映射到下划线(内部重定向)

如何正确地将 XML 内容映射到 C# 中的 DTO 属性

强制 RewriteRule 在 htaccess 文件中结束处理/循环

如何正确地将库与 cmake 链接?