如何在 Apache 中的一个 VirtualHost 指令中创建从两个域的重定向?

如何在 Apache 中的一个 VirtualHost 指令中创建从两个域的重定向?

我希望访问和的用户napiwki.kontestacja.comnapiwek.kontestacja.com重定向到同一个地址。我在 httpd.conf 中使用以下代码片段:

<VirtualHost *>
ServerName napiwki.kontestacja.com
RewriteEngine on
RewriteRule .* https://tipanddonation.com/Kontestacja
</VirtualHost>
<VirtualHost *>
ServerName napiwek.kontestacja.com
RewriteEngine on
RewriteRule .* https://tipanddonation.com/Kontestacja
</VirtualHost>

我尝试了不同的可能性,根据我对文档的阅读,这些可能性应该可以工作,但是没有——它总是导致napiwki重定向并napiwek导致 HTTP 403。也就是说,我把它们放在一个VirtualHost指令中:

ServerName napiwki.kontestacja.com
ServerAlias napiwek.kontestacja.com

或者

ServerAlias napiwki.kontestacja.com napiwek.kontestacja.com

或者

ServerAlias napiwek.kontestacja.com napiwki.kontestacja.com

我正在运行Server version: Apache/2.2.15 (Unix)。你能向我解释一下为什么上述配置没有按预期工作吗?

# httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:*                    is a NameVirtualHost
         default server stopacta2.org (/etc/httpd/conf/httpd.conf:1023)
         port * namevhost stopacta2.org (/etc/httpd/conf/httpd.conf:1023)
                 alias www.stopacta2.org
                 alias mail.stopacta2.org
                 alias webmail.stopacta2.org
                 alias admin.stopacta2.org
         port * namevhost kontestacja.com (/etc/httpd/conf/httpd.conf:1063)
                 alias www.kontestacja.com
                 alias mail.kontestacja.com
                 alias webmail.kontestacja.com
                 alias admin.kontestacja.com
         port * namevhost czat.kontestacja.com (/etc/httpd/conf/httpd.conf:1103)
         port * namevhost napiwki.kontestacja.com (/etc/httpd/conf/httpd.conf:1118)
         port * namevhost napiwek.kontestacja.com (/etc/httpd/conf/httpd.conf:1123)
         port * namevhost discord.kontestacja.com (/etc/httpd/conf/httpd.conf:1128)
         port * namevhost kontestgra.pl (/etc/httpd/conf/httpd.conf:1133)
         port * namevhost gra.kontestacja.com (/etc/httpd/conf/httpd.conf:1139)
         port * namevhost nowa.kontestacja.com (/etc/httpd/conf/httpd.conf:1145)
         port * namevhost www.kontestacja.com (/etc/httpd/conf/httpd.conf:1150)
                 wild alias *.kontestacja.net
         port * namevhost zus.kontestacja.com (/etc/httpd/conf/httpd.conf:1156)
Syntax OK

答案1

<VirtualHost *>
  ServerName napiwki.kontestacja.com
  ServerAlias napiwek.kontestacja.com
  ...
</VirtualHost>

(或相反)是正确的配置。

我发现 napiwki.kontestacja.com 和 napiwek.kontestacja.com 都拥有相同的一组 IP 地址。您确定此配置可以解决所有这些问题吗?

相关内容