重定向在 Apache 中不起作用,HTTP 到 HTTPS

Posted

技术标签:

【中文标题】重定向在 Apache 中不起作用,HTTP 到 HTTPS【英文标题】:Redirect not working in Apache, HTTP to HTTPS 【发布时间】:2016-07-15 10:52:33 【问题描述】:

我想将我的所有 HTTP 请求重定向到我的 HTTPS (SSL) 协议。拜托,这不是重复的。我已经尝试过在 SO 上找到的每一个问题,这些问题都表明了这样的问题,但没有一个有效。我尝试了在互联网上找到的所有内容,但仍然无法弄清楚问题所在。可能在某个地方必须启用某些东西或类似的东西。

我想从我的 httpd.conf 文件而不是 .htaccess 重定向,因为这是 Apache Org 建议的。我当前的重定向规则是

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

我正在我位于/etc/httpd/conf/httpd.confhttpd.conf 文件中进行所有这些更改

每次更改后,我还会使用 /etc/init.d/httpd restartservice httpd restart 重新启动我的服务器

我也试过了

RewriteEngine On
RewriteCond %HTTPS off
RewriteRule (.*) https://%SERVER_NAME/%$1 [R,L]

但是当我访问像www.example.com 这样的网站时,我并没有被重定向到https://www.example.com

我有一个 VPS 服务器,因此有足够的权限访问我的机器来启用或禁用某些东西。

【问题讨论】:

您尝试过this question 中的所有内容吗? (并确保重新启动 apache) @DevDonkey 是的,先生。我已经尝试了该问题的所有内容。事实上,我从中学到了如何从 Http 重定向到 Https 【参考方案1】:

尝试:

RewriteEngine on 
RewriteCond %HTTPS off
RewriteRule ^ https://%HTTP_HOST%REQUEST_URI [NE,L,R] 

【讨论】:

【参考方案2】:

这对我有用:

 # Force SSL
  RewriteCond %HTTPS !=on
  RewriteCond %HTTP:X-Forwarded-Proto =http
  RewriteCond %HTTP_HOST ^example.com
  RewriteRule ^.*$ https://%SERVER_NAME%REQUEST_URI [R=301,L]

【讨论】:

以上是关于重定向在 Apache 中不起作用,HTTP 到 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

http到https重定向使用htaccess在角度6中不起作用

为啥页面重定向在 php 中不起作用

apache 2.4中的htaccess重定向301不起作用

重定向到 https 安全在 react-router 中不起作用

带有重定向的通用链接在 iOS 中不起作用

使用系统命令将stdout和stderr输出重定向到文件在perl中不起作用[重复]