PHP 使用 https 读取子域转发的脚本

PHP script that forwards by reading the subdomain WHILE using https

我有一个 php 脚本可以根据 url 中写入的子域转发用户。

现在,通常您会阅读 HTTP_URI,但我的虚拟主机正在使用 iframe,所以我必须阅读 HTTP_REFERRER。

现在问题来了,访问网站 "normal" 时,例如 mysite.com 或

http://example.com

它工作正常,但是,当使用 https 时,它只显示一个白页。

这是我的代码:

<?PHP

$REFERRER = $_SERVER['HTTP_REFERER'];

// Or other method to get a URL for decomposition 
$domain = substr($REFERRER, strpos($REFERRER, '://')+3); 
$domain = substr($domain, 0, strpos($domain, '/')); 
// This line will return 'en' of 'en.example.com' 
$subdomain = substr($domain, 0, strpos($domain, '.')); 
//Echo $subdomain;

header("Location: https://example2.com/'$subdomain");
?>

..有人有什么建议吗? 重写不适用于此服务器上的子域。

将其用于 .htaccess 中的 https 重写

RewriteEngine On
RewriteCond %{HTTPS} off
# rewrite to HTTPS:
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您可以将其用于子域

RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteRule ^((?!sub1/).*)$ / [L,NC]

说明here

如评论中所述,问题是 "blocked loading mixed active content"。

如果包含 iframe 的站点是通过 https 加载的,则无法通过 http 加载 iframe 或其内容。