2009-09-26 48 views
0

爲什麼$_SERVER["SERVER_NAME"]不能回顯wwwwww.example.com,但是當我從子域名如test.example.com迴應時,它確實有效?

+0

打印什麼? – 2009-09-26 17:50:47

+0

它打印example.com – Andres 2009-09-26 17:53:24

+1

'example.com'可能是您的服務器/虛擬主機的規範服務器名稱。請參閱http://httpd.apache.org/docs/2.2/mod/core.html#usecanonicalname – Gumbo 2009-09-26 17:54:39

回答

6

我不知道它爲什麼不包含預期值。但是請嘗試使用$_SERVER['HTTP_HOST'],其中包含客戶端在HTTP header field Host中提供的值。但出於安全考慮,請參閱Chris Shiftlett’s SERVER_NAME Versus HTTP_HOST

+0

那麼,HTTP_HOST是否比SERVER_NAME更安全? – Andres 2009-09-26 18:05:31

+1

+1,調查詳細差異的有趣鏈接 – 2009-09-26 18:07:11

+0

@Andreas:不,兩者都很脆弱,正如鏈接文章所述。你應該在使用它們之前驗證這些值。參見http://stackoverflow.com/questions/1459739 – Gumbo 2009-09-26 18:09:00