ERVER_NAME對應Nginx配置文件中的server_name,通過fastcgi_param設置,如域名指向到IP而不在nginx中設置對應的server_name,PHP取SERVER_NAME為空,如果有多個server_name,取第一個。
例子
代碼如下 復制代碼server_name www.111cn.net;
fastcgi_param SERVER_NAME $server_name;
HTTP_HOST包含在HTTP請求信息中,即請求的域名或IP,Nginx內為host。
HTTP_HOST 和 SERVER_NAME 的區別:
一:相同時滿足以下三個條件:
1.服務器端口默認80
2.apache或nginx中ServerName設置正確
3.HTTP/1.1協議規范
二:不同點:
$_SERVER['HTTP_HOST']會根據客戶端HTTP請求輸出信息
$_SERVER['SERVER_NANE']會根據apache或nginx的配置文件中的ServerName值
當端口不為80時
$_SERVER['HTTP_HOST']輸出中會帶有端口號
$_SERVER['SERVER_NAME']只會直接輸出ServerName的值
所以,應盡量使用$_SERVER["HTTP_HOST"],保險,可靠!