Apache / PHP:无论如何要通过PHP检索ServerName设置

时间:2011-01-28 23:51:12

标签: php apache apache2 virtual-hosts

我有一个如下所示的Apache虚拟主机:

<VirtualHost *:80>
    ServerName host1.example.com
    ServerAlias host2.example.com
    DocumentRoot /srv/web/host1.example.com/pub
</VirtualHost>

我有以下文件:

/srv/web/host1.example.com/pub/test.php

我正在请求以下网址(请注意我使用的是ServerAlias,而不是ServerName

http://host2.example.com/test.php

我希望test.php以某种方式输出ServerName变量(host1.example.com)。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

显然,当您通过别名访问VirtualHost时,没有原始的痕迹 任何SERVER_NAME变量中的$_SERVER

想到的唯一想法是设置一个环境变量:

SetEnv MY_HOST host1.example.com

这应该将$_SERVER["MY_HOST"]的值设置为正确的主机名。虽然没有保证,但我从未尝试过这种做法。

答案 1 :(得分:0)

使用我们的网络托管服务商,默认的管理电子邮件为webmaster@<virtual-hostname>。多亏了这一点,我可以通过

$virtualhostname = substr($_SERVER['SERVER_ADMIN'], strpos($_SERVER['SERVER_ADMIN'], '@') + 1);