如何从https://abc.def.com重定向到https://uvw.xyz.com?

时间:2018-11-20 10:51:49

标签: apache

我需要从https://abc.def.com重定向到https://uvw.xyz.com

我尝试使用以下Apache重定向规则:

RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} =http

RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

RewriteCond %{HTTP_HOST} ^abc\.def\.com$ [NC]

RewriteRule ^(.*)$ http://uvw.xyz.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} !^uvw\.xyz\.com$

RewriteRule  ^.*$ - [F]

它不是重定向到https,而是重定向到http。我还为http://uvw.xyz.com设置了重定向规则,以重定向到https://uvw.xyz.com,这样,如果有人尝试不安全地访问该URL,它将重定向到安全网络。

我有一个用例,可以将其加载到https上另一个应用程序下的iframe中。尝试使用iframe打开页面时出现以下错误。

  

混合内容:“ https://someapplication.com/someaction”页面   已通过HTTPS加载,但请求了不安全的资源   'http://uvw.xyz.com/someotheraction'。该请求已被阻止;   内容必须通过HTTPS提供。

请帮助我制定正确的重定向规则

我正在使用Apache / 2.2.31。

1 个答案:

答案 0 :(得分:0)

修复非常简单。我们只是在编写的原始重定向规则的第五行上将重定向URL更改为https://uvw.xyz.com/

RewriteRule ^(.*)$ https://uvw.xyz.com/$1 [R=301,L]

我的浏览器还缓存了我以前的规则的结果,并且总是转到http,所以我只是清除了浏览器的缓存并开始正确重定向。