我已经尝试解决这个问题好几天了。我只想能够使用以下命令引用我的本地测试环境:placeholder.test
我的 中有以下内容httpd-vhosts.conf
:
<VirtualHost *:80>
DocumentRoot /root
ServerName localhost
<Directory /root/site>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?action=$1
</Directory>
</VirtualHost>
这是可行的。我在其中添加了重写规则,因为网站设计为按这种方式工作,但我无法让虚拟主机工作placeholder.test
。
我的参赛作品placeholder.test
如下:
<VirtualHost placeholdercms.test:80>
DocumentRoot /root/site
ServerName placeholder.test
ServerAlias www.placeholder.test
<Directory /root/site>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?action=$1
</Directory>
</VirtualHost>
此外,我还编辑了我的主机文件以包含以下内容:
127.0.01 localhost
::1 localhost
127.0.0.1 placeholder.test
127.0.0.1 www.placeholder.test
无论我做什么我都会得到:
此主机名 ( ) 的主机名解析 (DNS 查找)
placeholder.test
失败。
我觉得我遗漏了一些基本但至关重要的信息。如能得到任何帮助我将不胜感激。
答案1
似乎什么也没有apache 2.4 VirtualHost 示例文档这让我认为该指令支持 FQDN VirtualHost
。
我猜想该VirtualHost
参数是 apache2 实例应该监听的属性。大多数人将其设置*
为监听所有接口。如果需要,您甚至可以将其设置为特定于不同的接口,但似乎没有使用 FQDN 的示例。所以我将其更改为:
<VirtualHost *:80>
...
</VirtualHost>
此外,您还必须为您的本地 /etc/hosts
文件包含应该运行 apache2 实例的机器的 IP 地址。
答案2
我想我遗漏了一些基本但至关重要的信息。
是的。查看您提供的虚拟主机配置:
<VirtualHost placeholdercms.test:80>
DocumentRoot /root/site
ServerName placeholder.test
ServerAlias www.placeholder.test
<Directory /root/site>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?action=$1
</Directory>
</VirtualHost>
现在看看该配置的第一行:
<VirtualHost placeholdercms.test:80>
这placeholdercms.test
就是设置失败的原因。只需将其更改为:
<VirtualHost *:80>
*
和ServerName
/组合ServerAlias
适用于这样的虚拟主机设置。