Apache 在没有 www 前缀的域名上返回 403

Apache 在没有 www 前缀的域名上返回 403

我的 Web 在 www.example.com 上返回 403,但在 [name].com 上工作正常。在我的 apache2.conf 文件中,我有 ServerName=www.example.com,在 VirtualHost 标记中也是如此,但在那里我也有 ServerAlias=example.com:

<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
...

当我运行 /usr/sbin/apache2ctl -S 时,我得到:

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost www.example.com (/etc/apache2/sites-enabled/www.example.com.conf:1)
                 alias example.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

我想要的是 www.example.com 和 example.com 指向同一个服务。现在看来,当使用 www 前缀时,它使用的是默认的 conf 文件。

答案1

为了以防万一有人正在寻找答案,使用问题下的评论,我将 /etc/apache2/apache2.conf 中的 ServerName 设置为 localhost。

再加上正确的 VirtualHost 和 htaccess 重定向,我的域名的每个“版本”都会转到同一个版本。

感谢 erikwkolstad 和 DeadEye 的指点。

相关内容