我有一个域,即 test.example.com。
我通过uisng将我的服务器的主机名设置为此:
hostname test.example.com
然后我在 /etc/httpd/conf/httpd.conf 中添加一个虚拟主机
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/mydir
ServerName test.example.com
ServerAlias www.test.example.com
</VirtualHost>
然后我重新启动 Httpd 服务。如果我尝试访问 test.example.com,我会在 /var/www/html 中获得 index.php 而不是指定的文件夹。如果我将主机名更改为除此之外的其他名称,然后重新启动 httpd,虚拟主机将按预期工作,因此我只能假设当主机名有传入连接时,apache 会删除 url。
打印时在php中
$_SERVER['REQUEST_URI']
$_SERVER['REDIRECT_URL']
我得到/。谁能告诉我如何克服这个问题,或者我应该将主机名设置为其他内容吗?我有一个使用主机名作为目录名的备份脚本,因此我可以很好地组织备份,这是我首先更改主机名的主要原因。
我建议改变的是:
至 :
我已经在客户服务器上多次看到过这种情况,这已经解决了这个问题。
我通常将没有服务器名称的虚拟主机条目指向一个即将到来或未来的 php 文件主目录,直到我准备好使用服务器或站点,因为它将优先于任何未来的条目。
在你的情况下,我会替换
经过
像 test.example.com 和 www.test.example.com 以外的所有请求都将交付 /var/www/html/
更多信息:
NameVirtualHost
在您的情况下没有用,并且已在 Apache 2.4 https://httpd.apache.org/docs/2.4/en/upgrading.html中删除