服务端Apache 2中修改$_SERVER变量的位置及相关问题咨询
Debian + Apache2 环境下$_SERVER变量相关问题解答
1、查看所有$_SERVER变量完整列表的方法
有两种常用的本地查看方式:
- 新建PHP测试文件,比如在站点根目录创建
info.php,写入以下代码:
访问该文件后,在页面的PHP Variables分区即可看到所有完整的$_SERVER变量及当前生效值,测试完成后请立刻删除该文件,避免服务器配置信息泄露。<?php phpinfo(); ?> - 也可以直接输出数组内容,写入代码
<?php var_dump($_SERVER); ?>访问即可打印完整的数组结构。
2、修改$_SERVER['SERVER_NAME']、$_SERVER['HTTP_HOST']的配置位置
两个变量的控制逻辑不同,对应配置位置如下:
$_SERVER['SERVER_NAME']:由Apache的配置指令直接控制,Debian系统下Apache的配置默认存放在/etc/apache2/路径下,你可以在对应站点的独立虚拟主机配置文件(默认存放在sites-available/目录下,后缀为.conf)的<VirtualHost>标签内,修改ServerName指令的取值。修改后先执行apache2ctl configtest检查配置语法无报错,再执行systemctl reload apache2即可生效。$_SERVER['HTTP_HOST']:默认取值来自用户请求的Host请求头,若要强制修改该值,需要借助Apache的mod_headers模块实现:首先执行a2enmod headers启用模块,之后在对应虚拟主机配置中添加RequestHeader set Host "自定义的Host值",重载Apache后即可生效。
内容的提问来源于stack exchange,提问作者Artur Dino
相关产品推荐
相关产品推荐

