我的机器上有一个虚拟主机,我正在本地访问它。我在 Windows 7 下运行 apache2。
当访问该主机时,我在 Fiddler 中看到,该服务器将浏览器重定向到不同的远程站点并做出响应
301 Moved Permanently
但我实在找不到它配置在哪里。我搜索了所有 .htaccess 文件以查找目标站点的 URL,搜索了给定虚拟主机中的所有文件以查找此 URL,搜索了所有 Apache 目录...
如何追踪导致 Apache 进行此重定向的原因?
答案1
这不一定是 Apache 的配置在执行此操作 - Apache 是否将请求交给了动态内容生成器?
在您的 Apache 配置中查找两项内容;Redirect
和RewriteRule
带有R
标志的指令。如果这些不存在,则 Apache 不会执行重定向(重定向/directoryname
到除外/directoryname/
,但这听起来不像这里的情况),您需要查看 Apache 将请求交给的动态代码。
答案2
感谢上述回答,它为我指明了正确的方向。就我而言,301 重定向是由整个网站的重写规则引起的。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^voicent.com
RewriteRule ^/(.*)$ http://www.voicent.com/$1 [L,R=301]
上述规则强制使用规范主机名。它使每个 URL 都以 www.domain.com 开头,而不是 domain.com。您可以在 apache 访问日志中进一步验证这一点。