从 Apache VirtualHost 将 HTTPS 永久重定向到 HTTP

Posted

技术标签:

【中文标题】从 Apache VirtualHost 将 HTTPS 永久重定向到 HTTP【英文标题】:Redirect HTTPS to HTTP permanently, from Apache VirtualHost 【发布时间】:2016-09-06 10:09:25 【问题描述】:

关于将 HTTP 重定向到 HTTPS 有很多问题,如下所示:

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

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

但我需要做相反的事情,从 HTTPS 到 HTTP,可能不使用 mod_rewrite。那可能吗?

Apache版本:服务器版本:Apache/2.4.7 (Ubuntu)

我试过了,但它不起作用:

<VirtualHost _default_:443>
        ServerName example.com
        ServerAlias *.example.com
        Redirect "/" "http://example.com/"
</VirtualHost>

【问题讨论】:

你运行的是哪个 apache 版本? @dusan.bajic 服务器版本:Apache/2.4.7 (Ubuntu) Recommended way to to redirect HTTP requests to HTTPS的可能重复 如果您查看 error_log,我敢打赌您会看到类似 [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0) 的内容。这是因为没有 SSL 断言。 【参考方案1】:

这是对我有用的代码。

<VirtualHost *:80>
    ServerName example.com  
    ServerAlias www.example.com 
    DocumentRoot /var/www/html/example.com
</VirtualHost>

<VirtualHost *:443> ServerName example.com RewriteEngine on RewriteRule ^ http://%SERVER_NAME%REQUEST_URI [END,QSA,R=permanent] </VirtualHost>

【讨论】:

不确定为什么这个答案被否决了?而不是问题下的cmets,这是这里唯一的答案,它至少试图不忽略问题是关于将https重定向到http而不是颠倒!网络上发生了什么?试图“某人”强迫我们所有人使用证书和 https??不是每个网站都需要这个!但是,是的,对,有些东西要付出代价。再次!

以上是关于从 Apache VirtualHost 将 HTTPS 永久重定向到 HTTP的主要内容,如果未能解决你的问题,请参考以下文章

IIS 相当于 Apache 中的 VirtualHost

从端口80到端口8000的Apache反向代理配置

Apache VirtualHost配置

将端口更改为非 80 后无法访问 apache

Apache VirtualHost配置

php+apache配置单入口