在自定义日志中重写URL

时间:2012-01-29 05:28:15

标签: apache mod-rewrite

我在http.conf中定义了一个重写网址,以便将参数附加到请求网址。在自定义日志输出中,我没有看到修改后的请求URL。当我查看我在其中一个论坛中发现的原因时,mod_rewrite仅影响通过HTTP调用的访问,并且不会影响服务器内的文件操作。这是真的,有没有办法只记录Apache日志中修改后的重写URL?非常感谢您的帮助。

我尝试访问的示例网址为http://www.abc.com/pixel.gif?on=test,在输出中我想要/pixel.gif?type=modified&on=test

RewriteCond %{HTTP_HOST} www\.abc\.com
RewriteRule ^/(.*)$    /$1?type=modified       [QSA,L]
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

1 个答案:

答案 0 :(得分:1)

如果打开RewriteLog指令,有一种方法可以记录与重写相关的内容。

基本上,你会将它添加到你的.htaccess文件(并且日志路径可能会有所不同)

RewriteLog "/usr/local/var/apache/logs/rewrite.log"
RewriteLogLevel 5

但请注意,RewriteLogLevel确实会降低您的开发或生产服务器的速度。您可能希望使用较小的数字...而不是5。当您完成检查RewriteRule时...您很可能想要评论(或删除)RewriteLog / RewriteLogLevel行。

希望有助于您的调试!