2010-10-10 27 views
3

我將在PHP中開發一個網站。但不知道我要使用的方法是否是最好的方法。對於同一個站點將會有很多插件域。但內容將根據用於訪問該網站的域進行過濾。php HTTP_HOST&HTTP_REFERER對於關鍵任務的可靠性

例如,如果用戶來自域siteusa.com,則內容將根據特定用戶進行過濾顯示。如果用戶來自siteuk.com/sitechina.com內容會相應等filetered ...

我打算做這樣的事情來檢測URL和服務內容

$ref = getenv("HTTP_REFERER"); 
    echo $ref; 

或通過

$host = $_SERVER['HTTP_HOST']; 
echo $host ; 

這是最好的方法來做到這一點?我是否可能遇到任何瓶頸?這不應該將域名檢測爲關鍵。

站點的主要結構域將被服務未過濾的內容,並且每個附加域將根據濾波器,用於從後端每個域設置過濾。

有一個類似的問題,但與codeigniter here

回答

2

HTTP_REFERER是一個不錯的選擇。當用戶直接訪問您的網站時,HTTP_REFERER將爲空。

HTTP_HOST/SERVER_NAME應該做的伎倆,但它可以在負載均衡軟件或代理後面失敗。

因此,這取決於您的服務器配置。如果您有權訪問主機配置(例如apache虛擬主機),則可以在每個域的每個VirtualHost中簡單地指定ENV變量。

+0

如果它託管在共享主機或分銷商包上,它將如何? – esafwan 2010-10-10 09:44:17

+0

取決於。您可以從測試開始,打印$ _SERVER ['HTTP_HOST']; print $ _SERVER ['SERVER_NAME']; – 2010-10-10 09:49:59

+0

它正確返回...所有域正在打印。但是恐怕有什麼情況會失敗嗎?什麼是你說的負載平衡和代理和所有..我是新來的所有這些:) – esafwan 2010-10-10 10:29:02