首页 > 解决方案 > 如何从 https://abc.def.com 重定向到 https://uvw.xyz.com?

问题描述

我需要从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 上。

标签: apache

解决方案


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

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

此外,我的浏览器缓存了我之前规则的结果,它总是转到 http,所以我刚刚清除了浏览器缓存,它开始正确重定向。


推荐阅读