微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

apache2 忽略默认主机并始终重定向到域,即使使用 IP

如何解决apache2 忽略默认主机并始终重定向到域,即使使用 IP

用户通过IP地址访问我的服务器时,我试图让apache2使用站点,而不是输入站点的域,只是为了告诉用户他不能直接访问IP。

发生的事情是它不断重定向到域的站点,覆盖浏览器中的 IP 地址,而不是显示站点

请注意,域的站点重定向到 https,这是意料之中的。 站点根本不使用 ssl,最好不要使用 ssl。

我的站点配置如下(没有日志记录、错误文档或 ssl 路径指令): 000-default.conf

<VirtualHost *>
    DocumentRoot /var/www/html
</VirtualHost>

example.com.conf

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /home/example.com/www
    Redirect permanent / https://example.com
</VirtualHost>

example.com-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /home/example.com/www

    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

所有这些站点都已启用,并且 apache2 已重新启动。

> $ sudo apache2ctl -S
VirtualHost configuration:
*:*                    1.2.3.4 (/etc/apache2/sites-enabled/000-default.conf:1)
*:443                  example.com (/etc/apache2/sites-enabled/example.com-ssl.conf:2)
*:80                   example.com (/etc/apache2/sites-enabled/example.com.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

http://example.comhttps://example.com 的行为符合预期。 http://1.2.3.4:80/ 意外重定向https://example.com

解决方法

您应该避免<virtualhost *>,这相当于<virtualhost *:*>,这真的很不寻常。从任何虚拟主机中省略 ServerName 也是一个坏主意,因为它会从系统主机名中删除并导致混淆。

Apache 首先选择最匹配的 IP:PORT 组合,然后从最匹配的虚拟主机集中查看 ServerName/ServerAlias。

这就是选择您的 *:80 虚拟主机的原因 -- 这是一个更具体的匹配。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。