小编alc*_*ado的帖子

Apache2 多个主机名重定向到一个

我正在尝试将多个主机名重定向到一个,例如,如果您输入以下任何一个:

foo.example.com
www.example.com
bar.example.com
eample.com
Run Code Online (Sandbox Code Playgroud)

你必须被重定向到 www.example.com

我已经安装了一个www.example.com作为 ServerName的虚拟主机,其他的作为 ServerAlias,并使用 mod_rewrite 检查主机名是否正确,如果不正确则进行重定向。

问题是一切似乎都与 ServerName 指令主机名一起提供,所以 mod_rewrite 总是得到www.example.com,这与 apache2 文档一致:

例如,假设您正在为域 www.domain.tld 提供服务,并且您希望添加指向相同 IP 地址的虚拟主机 www.otherdomain.tld。然后您只需将以下内容添加到 httpd.conf:

名称虚拟主机 *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain

<VirtualHost *:80>
服务器名称 www.otherdomain.tld
DocumentRoot /www/otherdomain

您也可以指定显式 IP 地址来代替 NameVirtualHost 和指令中的 *。例如,您可能希望这样做是为了在一个 IP 地址上运行一些基于名称的虚拟主机,以及在另一个地址上运行基于 IP 或另一组基于名称的虚拟主机。

许多服务器希望通过多个名称进行访问。这可以通过放置在该部分内的 ServerAlias 指令实现。例如,在上面的第一个块中,ServerAlias 指令指示列出的名称是人们可以用来查看同一网站的其他名称:

ServerAlias domain.tld *.domain.tld 然后对 domain.tld 域中所有主机的请求将由 www.domain.tld 虚拟主机提供服务

是否有任何 apache2 指令来避免此功能并使用它们匹配的 ServerAlias 的主机名获取请求服务器?

或者我必须为重定向创建另一个虚拟主机?

谢谢

virtualhost redirection serveralias apache-2.2

11
推荐指数
1
解决办法
4万
查看次数