![Apache2 VirtualHost RedirectPermanent 与 AJP 代理冲突](https://linux22.com/image/772010/Apache2%20VirtualHost%20RedirectPermanent%20%E4%B8%8E%20AJP%20%E4%BB%A3%E7%90%86%E5%86%B2%E7%AA%81.png)
事实证明,我的网站上由 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 内,并且它可以按预期工作,因为它现在在重定向后进行处理。VirtualHost
VirtualHost