我有一台运行 apache2.2 的服务器,托管多个虚拟主机,其中一些域包含关键字(例如“foo123”),所有域都被重写/重定向到我的另一个托管域。我的所有其他域均按预期工作。
问题是我在任何地方都找不到这个难以捉摸的规则。
我已经检查过:
我的 apache2.conf(多次)
httpd.conf(空)
/etc/apache2/sites-enabled 和 sites-available 中每个站点的配置
/var/www/ 下每个站点的 .htaccess 文件
使用 grep 递归检查 /etc/apache2(也可以用 nano 手动检查)使用 grep 递归检查
/var/www 使用 grep 递归检查
/etc/php5 使用 grep 递归检查(只是为了确保万无一失)
iptables
我还在主机的控制面板上检查了我的 DNS 记录,并尝试在启用 apache 的 RewriteLog(设置为 4,然后是 9)的情况下进行调试,但是没有那么幸运。
我遗漏了什么吗?
答案1
是的,您缺少 PHP 代码。Apache 不是唯一可以30x
向客户端系统发送响应的东西。ARewriteRule
或Redirect
是 Apache 的配置方式,但 PHP 代码可以随意修改响应代码和标头。
当您收到重定向时,请仔细查看确切的 HTTP 请求和响应 - 这应该有助于为您(或我们)指明正确的方向。根据您提供的信息,我怀疑 PHP 应用程序认为请求应该带有为其配置的特定主机标头,并且它会重定向那些不属于该标头的请求。