Apache2 VirtualHost RedirectPermanent 与 AJP 代理冲突

Apache2 VirtualHost RedirectPermanent 与 AJP 代理冲突

事实证明,我的网站上由 ajp ProxyPass 控制的位置在 VirtualHost 重定向之前被处理,这引起了我的注意,因为谷歌已经在 ardownload.example.org 上索引了 25k+ 个页面 - 这是一个我从未使用过的子域,我不知道他们是如何开始走这条路的。他们还有大约 12k 个来自“不存在”的其他子域的页面。我把问题追溯到这样一个事实:如果重定向到达 ajp 代理位置,则不会遵守重定向。

期望的结果是所有子域名都正确重定向到主站点,同时保留 URL 和查询字符串。

当前 VirtualHost 部分忽略重定向:

<VirtualHost *:80>
    ServerName example.org
    ServerAlias *.example.org
    RedirectPermanent / https://www.example.org/
</VirtualHost>

当前位置代理导致错误。

<Location /tomcatlocation/>
     ProxyPreserveHost on
     ProxyPass ajp://127.0.0.1:8009/tomcatlocation/ retry=0
     ProxyPassReverse ajp://127.0.0.1:8009/tomcatlocation/
</Location>

foo.example.org/tomcatlocation/或之类的东西foo.example.org/tomcatlocation将不会重定向,而截断为foo.example.org/tomcatlocatio将正确重定向。

我没有找到有关此信息。谢谢。

apache2ctl-S:

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server www.example.org (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost www.example.org (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost example.org (/etc/apache2/sites-enabled/000-default.conf:10)
                 wild alias *.example.org
         port 80 namevhost example.net (/etc/apache2/sites-enabled/000-default.conf:15)

... other domains truncated ...

*:443                  is a NameVirtualHost
         default server example.org (/etc/apache2/sites-enabled/default-ssl.conf:2)
         port 443 namevhost example.org (/etc/apache2/sites-enabled/default-ssl.conf:2)
                 alias www.example.org
         port 443 namevhost example.net (/etc/apache2/sites-enabled/default-ssl.conf:25)
                 alias www.example.net
         
... other domains truncated ...


ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: 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

答案1

我将指令移至:80重定向到的Location:443 内,并且它可以按预期工作,因为它现在在重定向后进行处理。VirtualHostVirtualHost

相关内容