事实证明,我的网站上由 ajp ProxyPass 控制的位置在 VirtualHost 重定向之前正在处理,这引起了我的注意,因为谷歌已经在 ardownload.example.org 索引了 25k+ 页面 - 我从未使用过并且不知道如何使用的子域他们开始走这条路。他们还有大约 12k 来自其他“不存在”的子域的页面。我将问题追溯到这样一个事实,即如果重定向到达 ajp 代理位置,则不尊重重定向。
期望的结果是所有子域都正确重定向到主站点,同时保留 url 和查询字符串。
部分忽略重定向的当前虚拟主机:
<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