2013-03-07 91 views
0

我有應包含PHP函數幾個不同的網站響應Nginx上服務器:如何映射nginx以響應請求者?

file_get_contents(); 

當查看日誌,我可以看到請求方的IP:

191.56.110.18 - - [07/Mar/2013:00:46:53 +0000] "GET/HTTP/1.0" 200 151 "-" "-" 

但我想nginx的映射請求者的實際請求頁面。因此,舉例來說,當我的領域之一使用file_get_contents()擺脫www.mydomaim.com/page20頁面的響應則nginx的將其映射到包含字符串"this is page 20"

我想,也許我會讓在每一個參數的請求的文件我的域:

$_SERVER['SERVER_NAME'] 

所以通話會是這樣的:

file_get_contents('http://www.nginxserver.com/?domainpage='. $_SERVER['SERVER_NAME']); 

但是,這將只返回域名,我認爲這不是最佳的。對於nginx我顯然是新手,並且正在尋找執行此功能的最佳方法。

我的目標是根據請求頁面提供靜態內容。我錯過了什麼嗎?什麼是最好的方式去做這件事?

+0

如果您提供靜態內容,你應該把PHP和file_get_contents完全排除在等式之外。 nginx的麪包和黃油正在提供靜態內容,所以讓nginx調用靜態內容。如果它正在服務整個頁面,那麼就讓nginx重定向到你想要的內容。如果還有其他事情發生,比如它只是頁面的一部分,那麼我需要更多的信息。我的主要問題是,你爲什麼這樣做?爲什麼你覺得file_get_contents在這種情況下很重要? – 2013-03-07 06:18:39

+0

@MarkTomlin想到nginx決定在每個頁面上顯示「橫幅」。這只是網頁的一部分。我不能用javascript異步執行它,但必須使用file_get_contents – Tom 2013-03-07 11:09:41

回答

0

根據請求的頁面上:

的信息是在引用http頭,這是通過$http_referer變量從nginx的內訪問過。

但請記住,有沒有保證引用站點頭將被設置,或者設置正確(欺騙或阻塞Referer標頭是既簡單,半常見)