重定向在 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.conf
的httpd.conf
文件中进行所有这些更改
每次更改后,我还会使用 /etc/init.d/httpd restart
或 service 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中不起作用
apache 2.4中的htaccess重定向301不起作用