2011-09-19 59 views
0

假設我有兩個域名:www.somesite.com和www.anothersite.com,並且都轉到www.somesite.com(anotherite.com是別名)。用php重定向站點別名?

我可以通過somesite.com上的index.php重定向訪問者,如果他們在www.anothersite.com(使用PHP)中輸入的話?

回答

0

找到了答案。

我需要使用HTTP_X_HOST,而不是HTTP_HOST。

<?PHP 
if($_SERVER['HTTP_X_HOST']=='anothersite.com'){ 
    header('Location: http://www.somesite.com/anothersite/'); 
} 
?> 

謝謝你的回答。 :)

+0

您是否在使用代理?如果是這樣,那麼在這個問題中可能會有用:| –

+0

我真的不知道我的情況。這是我發佈到StackOverflow的原因之一(有關指導)。抱歉。無論如何你都有幫助。 :) – bozdoz

1
if (false !== strpos($_SERVER['HTTP_HOST'], "anothersite.com")){ 
    header("Location: http://somesite.com"); 
    die(); 
} 
+1

1. strpos()可以返回0作爲將評估爲false的位置。 2.這不會處理www.anothersite.com和3.您需要退出;在header()調用之後。 – jasonbar

+0

@jasonbar:1.編輯2.是的,它會3.我不需要,但它是好點,謝謝 – genesis

+0

Yerp,你是對的。 www.anothersite.com是唯一能夠捕捉到的東西。沒有出口;頁面的其餘部分將被執行。可能不是最理想的情況。 – jasonbar

1
<?php 
    header('Location: http://www.somesite.com/'); 
?> 

CNC中 這隻重定向,沒有正確讀取的問題。

+0

這是如何回答這個問題的? –

+0

這根本不是問題的答案。 – GolezTrol

+0

我的不好,完全沒有讀完這個問題,隨意投票下來。 – derp

2

是的,你可以檢查$ _SERVER ['HTTP_HOST']。如果是anothersite.com,則使用header()重定向。或者,您可以使用.htaccess和mod_rewrite。

+0

我無權訪問.htaccess。 HTTP_HOST不起作用。 – bozdoz

+0

定義「不工作」。 –

+0

HTTP_HOST無法識別anothersite.com;它只是說somesite.com – bozdoz

2

取決於。如果兩個域只是啓動相同的腳本,則可以檢查使用哪個域。如果您將(301或其他)從anothersite.com重定向到somesite.com,它將成爲新請求,並且您看不到用戶實際上鍵入了anothersite.com。

+0

這可能是發生了什麼事情。我試過HTTP_HOST和所有無濟於事。 – bozdoz

+0

你認爲我可以參考劇本嗎? – bozdoz

1
<? 
if(strpos($_SERVER["SERVER_NAME"], 'anothersite.com') !== false) { 
    header ("HTTP/1.1 301 Permanent Redirect "); // you don't need that 
    header ('Location: http://somewhere.else.com'); 
    exit(); 
} 


?>