我有一个域名 www.example.COM。我在该域名上有一个页面 www.example.com/page。我还有另一个域名 www.example.NET,我希望该域名解析到前面提到的页面 www.example.com/page。
因此,基本上当有人访问 www.example.net 时,它会解析为 www.example.com/page,但地址栏中的 url 仍然是 www.example.net。
到目前为止,我可以通过设置注册商的 DNS 成功将 www.example.net 解析为 www.example.com(主页)。现在我可以做到这一点,这是否与虚拟主机、.htaccess、apache 配置或我服务器上的其他内容有关,而我可以专门将这个 domain-b.com 解析为 domain.com 上的这个特定页面?
答案1
您可以使用 ServerAlias 命令,如下所示
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias www.domain-b.com
DocumentRoot /var/www/path/to/my/files
[ extra web app stuff here ... ]
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
或者,如果您需要为每个域设置略有不同的设置,则可以拥有多个 VirtualHost
<VirtualHost *:80>
ServerName www.domain.com
DocumentRoot /var/www/path/to/my/files
[ extra web app stuff here ... ]
ErrorLog /var/log/apache2/domain.com-error.log
LogLevel warn
CustomLog /var/log/apache2/domain.com-access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName www.domain-b.com
DocumentRoot /var/www/path/to/my/files
[ extra web app stuff here ... ]
ErrorLog /var/log/apache2/domain-b.com-error.log
LogLevel warn
CustomLog /var/log/apache2/domain-b.com-access.log combined
</VirtualHost>
这实际上取决于您的需求,而不仅仅是域名。
如果您已经这样做了,但不起作用,那么您的 Web 应用可能需要进行特定设置才能使其正常工作。Web 应用通常会明确访问它的域,并在设置中将任何未知域重定向到该域。例如,WordPress 就以这样做而闻名。
如果更改 Web 应用程序设置不是一种选择,那么您应该考虑使用 nGinx 作为 Apache 前面的反向代理并修改输入/输出标头和数据,但这绝对是最后的手段,因为它假设了太多我们无法了解的有关您的 Web 应用程序的事情,并且会对性能产生不利影响。
此外,如果我没有警告您,那我就是失职了,如果您打算将其设为面向公众的网页,那么这种设置可能会对您的搜索引擎流量造成不利影响,因为它会被视为重复内容。