我有一个如下所示的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
)。有没有办法做到这一点?
答案 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);