84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
主域名比如是:ol.com本来正常来说
B域名访问 --> $_SERVER["SERVER_NAME"] --> B.ol.com A域名访问 --> $_SERVER["SERVER_NAME"] --> A.ol.com
但是今天发现的一个很奇怪的问题,我有一个主域名,两个子域名,都指向的同一个服务器。然后我通过B域名访问,又通过php的$_SERVER["SERVER_NAME"] 打印出来的确是A域名的地址。
下面是nginx的配置
小伙看你根骨奇佳,潜力无限,来学PHP伐。
$_SERVER['SERVER_NAME'] 获取的是web服务器中配置的域名$_SERVER['HTTP_HOST'] 获取的是,用户访问时的域名
$_SERVER['SERVER_NAME']
$_SERVER['HTTP_HOST']
当配置中有多个域名是,请使用 $_SERVER['HTTP_HOST'] 获得当前使用的域名。
正确的是通过 $_SERVER['HTTP_HOST'] 来获取host
server_name 获取的是nginx里server_name配置的项,有可能是正则表达式或多个域名,如:
~^(?<site>.+)\.uedsky\.com$
其实你应该用的是$_SERVER["HTTP_HOST"],而$_SERVER["SERVER_NAME"]是在
server_name中获取的。而指定了多个域名作为server_name,Nginx总会以第一个遇到的为准。
$_SERVER['SERVER_NAME']
获取的是web服务器中配置的域名$_SERVER['HTTP_HOST']
获取的是,用户访问时的域名当配置中有多个域名是,请使用
$_SERVER['HTTP_HOST']
获得当前使用的域名。正确的是通过 $_SERVER['HTTP_HOST'] 来获取host
server_name 获取的是nginx里server_name配置的项,有可能是正则表达式或多个域名,如:
其实你应该用的是$_SERVER["HTTP_HOST"],而$_SERVER["SERVER_NAME"]是在
server_name中获取的。而指定了多个域名作为server_name,Nginx总会以第一个遇到的为准。