使用$ _get信息将任意子域重定向到页面

时间:2011-07-18 15:53:49

标签: php .htaccess redirect subdomain

我的网站已启动并正在运行且已获得另一个域,需要将任何访问重定向到exampleA.com或其任何子域,到的页面我可以将请求的页面的子域检查到动态网站列表,如果匹配将其发送到exampleB.com 上的子域,如果不是,则将其发送到exampleB.com的主站点。 exampleA.com上没有任何网站只是主域的缩短版本。主要网站是wordpress网站。

我有什么。

我有exampleA.comexampleB.comexampleB.com有子域名。

我需要什么。

*.exampleA.com重定向到exampleB.com/somePage/?from=*

到达exampleB.com/somePage/?from=*后,我可以查看$_GET信息。但我不确定如何将任意子域设置为$_GET

2 个答案:

答案 0 :(得分:1)

当您将域名与列表(可以从$_SERVER['HTTP_HOST']获得)匹配时,您可以使用PHP的header('Location: http://example.com/')动态重定向用户。

答案 1 :(得分:1)

你需要一些东西:

a)exampleA.com的DNS设置必须配置为允许通配符子域:

*.exampleA.com. 3600 IN A x.x.x.x

b)exampleA.com的Web服务器配置必须允许通配符主机匹配

<VirtualHost ...>
    ServerName exampleA.com
    ServerAlias *.exampleA.com
</VirtualHost

c)exampleA.com的默认文档是一个简单的PHP脚本,它提取正在使用的主机名,并使用提取的主机名向exampleB发出重定向。

<?php

$requested_host = $_SERVER['HTTP_HOST'];

$parts = explode('.', $requested_host);
array_pop($parts); // com
array_pop($parts); // exampleA

$requested_subhost = implode('.', $parts);

header("Location: http://exampleB.com/?from=$requested_subhost");