$_SERVER['SERVER_SUBDOMAIN'],自定义$_SERVER变量

问题描述:$_SERVER['SERVER_SUBDOMAIN'],求解这个参数为什么在apche下无法正确获取。在nginx上正常呢?在wamp下,无 法获取到此参数,而在lnmp下可以正常获取(没有做任何特殊设置)。


分析:1.在apache下建立一个测试文件test.php,内容为:<?php $_SERVER['SERVER_SUBDOMAIN']='wy'; var_dump($_SERVER['SERVER_SUBDOMAIN']); print_r( $_SERVER);die; ?>

           2.在nginx下也建立一个测试文件内容为print_r($_SERVER);

              由输出内容可以看出,在apache下,根本就没有这个$_SERVER['SERVER_SUBDOMAIN']变量。但是可以自己指定;而在nginx下,可以正常的输出。比如在地址栏中       输    入xx.baidu.com,那么可以输出结果为 'xx'。

                3.查询php手册在$_SERVER这个环境变量中是找不到的。问了大神才知道这个变量在apache下是需要特殊指定的。即在入口文件目录下的.htaccess文件中指定变量,内容如下
#Apache rewrite configuration <ifmodule mod_rewrite="" c=""> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] SetEnv SERVER_SUBDOMAIN wy SetEnv SERVER_SUBDOMAIN lyl </ifmodule>

后面两句代码是用来设置环境变量的,分别设置了wy   和  lyl  。作了这项设置后,当在浏览器地址栏中输入wy.baidu.com 或 lyl.baidu.com时。这个环境变量就可以分别获取到wy或lyl。

tips:在nginx上是不需要做任何配置的。可以正常使用


你可能感兴趣的:($_SERVER['SERVER_SUBDOMAIN'],自定义$_SERVER变量)