重定向不在Apache中工作,HTTP在HTTPS中工作

时间:2016-03-28 07:31:37

标签: php apache .htaccess redirect httpd.conf

我想将所有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 >

我正在httpd.conf

中的/etc/httpd/conf/httpd.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服务器,因此有足够的权限访问我的机器以启用或禁用某些内容。

2 个答案:

答案 0 :(得分:2)

尝试:

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

答案 1 :(得分:0)

这对我有用:

 # 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]