如何在不同的端口上创建子域?

如何在不同的端口上创建子域?

这是我的 vhosts.conf

<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "C:/wamp/www/images"
ServerName images.localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "C:/wamp/www/project"
ServerName project.localhost
</VirtualHost>

Listen 8080
<VirtualHost *:8080>
DocumentRoot "C:/wamp/www/trunk"
ServerName localhost
</VirtualHost>

<VirtualHost *:8080>
DocumentRoot "C:/wamp/www/images2"
ServerName images2.localhost
</VirtualHost>

这是我的 Windows 主机文件

127.0.0.1 project.localhost 

127.0.0.1 images.localhost

127.0.0.1 images2.localhost

所以前三个都很好。端口 8080 上的 localhost 可以工作,我只需转到 localhost:8080,它就会加载 trunk 内的内容。

images2.localhost:8080 显示 C:/wamp/www/trunk 里面的内容,images2.localhost 只是转到 wampserver 主页。尝试更改为此,但仍然相同。

答案1

为了更清楚一点,这些条目中的第一个“拥有”:8080 端口,因此第二个条目被忽略。

<VirtualHost *:8080>
DocumentRoot "C:/wamp/www/trunk"
ServerName localhost
</VirtualHost>

<VirtualHost *:8080>
DocumentRoot "C:/wamp/www/images2"
ServerName images2.localhost
</VirtualHost>

你想要的是基于名称虚拟服务器,因此您可以使第一和第二个条目唯一。这就是 ServerName 指令真正发挥作用的原因。正如 @quanta 所述,将其添加NameVirtualHost *:8080到配置中,然后 Apache 将注意您在浏览器中输入的 URL,并根据与 URL 匹配的 ServerName 指令提供页面。

答案2

插入NameVirtualHost *:8080指令并重试。

相关内容