如何在Apache服务器上自动将HTTP重定向到HTTPS?

260
我正在尝试设置自动从HTTP重定向到HTTPS。
From manage.mydomain.com --- To ---> https://manage.mydomain.com

我尝试将以下内容添加到我的httpd.conf文件中,但没有起作用:
 RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

怎么修复它?
环境:CentOSApache
13个回答

4
请尝试在Apache虚拟主机配置中添加此内容,然后重新加载Apache服务。
RewriteEngine On

RewriteCond %{HTTPS} off


RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

2
这对我有用:

这对我有用:

RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]

-1
这个具体问题在Apache文档中有详细介绍,点击这里查看。

To redirect http URLs to https, do the following:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect "/" "https://www.example.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
</VirtualHost>

我不明白为什么这个回答被踩了。我很想知道原因,如果能解释为什么我不应该发表这个回答的话,我愿意删除它。 - Nathan Wailes
答案是抛出一个参考,复制一些文档,并且是*** *** 不具体 *** ****(例如,问题到底是什么?),而不解释其要点。这在某种程度上相当于代码转储。如果链接失效,本质上就是一个“试试这个”的答案。根据帮助中心的说法:“...始终解释你提出的解决方案为何合适以及其工作原理”。 - undefined
@PeterMortensen 问题是“如何在Apache服务器上自动将HTTP重定向到HTTPS?”,引用的配置设置是专门针对这个问题的:“将http URL重定向到https...”。如果链接失效,有人可以将其切换到链接的archive.org版本(这是我经常为链接失效的旧答案所做的事情)。我不明白你添加的第二个链接如何相关,因为我并没有将别人撰写的博客式解释作为我的。我的回答格式基本上与得票最多的答案的格式相同。 - undefined
@PeterMortensen 我已经添加了一句话,解释了摘录应该放置的位置,以防不清楚。 - undefined
关于“...始终解释所提出的解决方案为何合适以及其工作原理”:我们应该期待提问者具备多少先前的知识?我的原始回答是假设他们已经熟悉Apache配置文件。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接