PHP中的$_SERVER['HTTP_HOST']与$_SERVER['SERVER_NAME']的区别

PHP中的$_SERVER['HTTP_HOST']与$_SERVER['SERVER_NAME']的区别

通过:$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']可以获取域名及请求的URL。

1、变量HTTP_HOST和SERVER_NAME都是获取当前域名

2、当满足以下3个条件的时候,两者会输出相同的信息

     A、服务器端口号为80

     B、Apache中的conf中的ServerName设置正确

     C、HTTP/1.1协议规范

3、不同点

      A、$_SERVER['HTTP_HOST']:在HTTP/1.1协议下,会根据客户端的HTTP请求输出信息;

            $_SERVER['SERVER_NAME']:默认情况下会直接输出Apache的配置文件httpd.conf中的ServerName的值

      B、当服务器的端口号不是80时

            $_SERVER['HTTP_HOST']会输出端口号,例如“www.funwall.cn:8080”

            $_SERVER['SERVER_NAME']直接输出ServerName的值,例如“www.funwall.cn”

             在这种情况下,可以理解成HTTP_HOST = SERVER_NAME:SERVRE_PORT

     C、当配置文件httpd.conf中的ServerName与HTTP/1.0下的域名不一致的时候,假如httpd.conf配置如下:

            <virtualhost *>

                      ServerName funwall.cn

                      ServerAlias www.funwall.cn

            </virtualhost>

            客户端访问域名:www.funwall.cn

            $_SERVER[HTTP_HOST]输出:www.funwall.cn

            $_SERVER[SERVER_NAME]输出:funwall.cn

            因此,在实际中应该用$_SERVER[HTTP_HOST]获取域名比较保险

            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值