我有一个使用 apache/wamp 的子域开发设置,使用“常规”设置和“xyz”设置时一切都按我需要的方式工作,但每次我需要不同的设置时,我都必须更改配置并重新启动服务器。
有没有办法让两种设置同时工作?
我正在寻找允许我同时访问这两个设置的答案,而无需更改用于访问它们的 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>
答案1
你处理这个问题的方式不太正确。
ServerName 和 ServerAlias 有点多余。ServerName 提供虚拟主机的“主要”名称,在需要时可识别虚拟主机。ServerAlias 提供映射到虚拟主机的其他名称。
ServerName 也不必是服务器的实际主机名(使用 FQDN)。它可以是任意的,并且可以对于所有虚拟主机都不同。
假设您使用www.localhost.com
访问一个服务器,并www.xyz.localhost.com
访问另一个服务器,则只需使用localhost.com
和xyz.localhost.com
作为 ServerName 参数,并保留相同的通配符。但请记住,这xyz.localhost.com
将转到这些虚拟主机中首先出现的那个(具有按词汇顺序排在第一位的文件名)。
附注:请勿使用不属于您的域名。如果您的目的是为了文档目的而混淆实际域名,请使用example.net
。