重定向 301 后在 apache 日志文件中记录原始域的正确方法是什么?

重定向 301 后在 apache 日志文件中记录原始域的正确方法是什么?

感谢您阅读我的问题。

我使用的是 Debian5 + apache2
在 apache2.conf 中,我有多个 VirtualHost 部分。
我在虚拟主机部分中有一个主域 www.mymain.com,在另一个虚拟主机部分中有一个其他域。
后者有一个重定向命令,如下所示:
redirect 301 /http://www.mymain.com

所有重定向都工作正常。
我想记录使用的原始域名,但尝试了所有格式字符串http://httpd.apache.org/docs/2.3/mod/mod_log_config.html#formats无济于事。

我已经为 VirtualHost 部分使用了所有标准日志和我自己自定义的(全部)日志,但所需数据没有出现在任何日志文件的任何地方。

即用户点击 www.myotherdomain.com 的链接,apache 成功将其 301 重定向至 www.mymain.com

我想 在日志中看到
blah blah www.myotherdomain.com blah blah

任何意见均表示赞赏。

为有类似问题的人们提供提示。

大多数浏览器都会缓存 301 重定向。一种强力解决方案是使用 Firefox 的便携式安装进行测试(例如)。进行测试,然后删除并重新安装该应用程序。或者,只要您想要进行测试,就可以复制原始安装的克隆。

请小心在 apache2.conf 中的 serveralias 命令中使用 *.domain.tld

即使所有服务器名称都是虚拟的,UseCanonicalName Off 也适用

请记住,301 重定向会生成 2 个完全独立的日志条目,因为它是 2 个完全独立的事件,即

browser requests www.myolddomain.tld -> server A returns 301 "command"
and
browser requests www.newdomain.tld (as listed in 301 cache) -> server B returns result

理论上服务器 B 可能根本不知道发生了 301

当然,如果服务器 A 和 B 相同,那么将信息添加到服务器 B 的日志中将非常有用。

答案1

听起来您想使用一种CustomLog包含的格式(对于发送重定向的虚拟主机)%V,并确保您已设置UseCanonicalName Off

日志格式文档在这里

相关内容