【问题标题】:Redirect not working in Apache, HTTP to HTTPS重定向在 Apache 中不起作用,HTTP 到 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

标签: php apache .htaccess redirect httpd.conf


【解决方案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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-10
      • 2018-06-11
      • 2015-07-28
      • 2017-12-07
      • 2012-06-07
      • 2022-01-14
      • 2021-04-15
      • 2018-01-31
      相关资源
      最近更新 更多