如何设置Apache以重叠虚拟主机通配符服务器别名?

我有一个Apache / wamp的子域的开发设置,一切工作正常,需要与“常规”设置和“xyz”设置,但我必须改变configuration,并重新启动服务器,每当我需要一个不同的设置。

有没有办法让两个设置同时工作?

我正在寻找答案,允许我同时访问这两个设置,而无需更改我用来访问它们的url或端口。

这是我的常规设置

<VirtualHost *:9090> ServerName localhost.com ServerAlias *.localhost.com VirtualDocumentRoot u:\wamp\www\subdomains\%1 <directory "u:\wamp\www\subdomains\%1"> Options Indexes FollowSymLinks AllowOverride all Order Deny,Allow Deny from all Allow from all </directory> </VirtualHost> 

这是我的次要(xyz)设置

 <VirtualHost *:9090> ServerName localhost.com ServerAlias *.xyz.localhost.com VirtualDocumentRoot u:\wamp\www\subdomains\xyz <directory "u:\wamp\www\subdomains\xyz"> Options Indexes FollowSymLinks AllowOverride all Order Deny,Allow Deny from all Allow from all </directory> </VirtualHost> 

你没有接近这个正确的。

ServerName和ServerAlias有点多余。 ServerName提供了虚拟主机的“主要”名称,用于标识需要的地方。 ServerAlias提供映射到虚拟主机的其他名称。

ServerName也不一定是服务器的实际主机名(包含FQDN)。 它可以是任意的,它可以是所有的虚拟主机不同。

假设您使用www.localhost.com访问一台服务器,访问www.xyz.localhost.com访问另一台服务器,可以使用localhost.comxyz.localhost.com作为ServerName参数,并保留相同的通配符。 但是,请记住, xyz.localhost.com然后会去这些虚拟主机中的第一个出现(有一个文件名首先在词法顺序)。

作为一个方面说明,不要使用你不拥有的域名。 如果您的目的是为了文档的目的而混淆实际的域名,请使用example.net