2011-07-18 69 views
1

頁面重定向任意子域我有一個網站,是建立和運行,並已經得到了另一個域,需要重定向任何訪問exampleA.com或其任何子域,一個頁面,我可以檢查請求的頁面的子域到動態域名列表,如果其匹配發送到exampleB.com的子域,並且如果沒有發送到exampleB.com的主站點。 exampleA.com上不會有任何網站,它只是主域名的較短版本。主站點是一個WordPress站點。

我有什麼。

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

我需要什麼。

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

後它得到exampleB.com/somePage/?from=*我可以檢查$_GET信息。但我不知道如何將任意的子域設置爲$_GET

+0

有什麼遺漏嗎?這個問題? – KingCrunch

+0

對不起,我不想發佈它但很抱歉 – webLacky3rdClass

+0

您有權訪問exampleA.com的httpd.conf嗎? – afuzzyllama

回答

1

您將需要幾件事情:

一)exampleA.com的DNS設置必須配置爲允許通配符子域:

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

B)exampleA.com的Web服務器配置必須允許wildcard宿主匹配

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

C)exampleA.com的默認文檔是一個簡單的PHP腳本,提取所使用的主機名和發出重定向與提取豪例B聖名。

<?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"); 
+0

因此,如果'exampleB.com'有一個通配符(並且它確實),'sub1.exampleA.com'(以及所有其他的)的默認值將是'exampleA.com'的默認值? – webLacky3rdClass

+0

我想我從一開始就提出錯誤的問題,我不知道默認頁面將顯示在空的子域上。謝謝。 – webLacky3rdClass

1

當你對錶(可從$_SERVER['HTTP_HOST']獲得)相匹配的域名,你可以使用PHP的header('Location: http://example.com/ ')然後重定向動態用戶。

+0

要做到這一點,我不需要知道子域,並讓它在IIS中設置。我真正需要的是'* .exampleA.com'到'exampleB.com/somePage/?from = *' – webLacky3rdClass

+0

是的,當你檢查$ _SERVER ['HTTP_HOST']'時,它會給你subdomain.exampleA。 com,從中你可以得到的子域和重定向使用'header('Location:...')。 – fletom