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

Jac*_*ack 0 port subdomain

这是我的 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>
Run Code Online (Sandbox Code Playgroud)

这是我的 Windows 主机文件

127.0.0.1 project.localhost 

127.0.0.1 images.localhost

127.0.0.1 images2.localhost
Run Code Online (Sandbox Code Playgroud)

所以前三个没问题。端口 8080 上的 localhost 工作,我只需转到 localhost:8080 并加载主干内的内容。

images2.localhost:8080 显示 C:/wamp/www/trunk 中的内容,而 images2.localhost 只是转到 wampserver 主页。试过改成这个,但还是一样。

Pau*_*aul 5

只是为了增加一点清晰度,这些条目中的第一个“拥有” :8080 端口,因此第二个被忽略。

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

<VirtualHost *:8080>
DocumentRoot "C:/wamp/www/images2"
ServerName images2.localhost
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

您想要的是基于名称的虚拟服务器,因此您可以使第一个和第二个条目唯一。这就是使 ServerName 指令实际执行某些操作的原因。如@quanta 所述,添加NameVirtualHost *:8080到配置中,然后 Apache 会注意您在浏览器中输入的 url,并根据与该 URL 匹配的 ServerName 指令为页面提供服务。