1

我有一些网站,我们主要使用 mod_rewrite 来 301 将旧链接重定向到新的相关页面。

问题是,我们现在每个站点都有数千条规则,其中一些非常晦涩,并且已经存在多年。然后有一些相互干扰和/或创建循环。多么有趣。

我想做的是记录一段时间的 mod_rewrite - 比如说几周,然后解析这些日志以找到已使用的实际重定向,然后删除任何未使用的重定向。

问题是:

a) 它会创建非常大的日志文件,因为它会为每个请求记录至少一行(如果您使用的是更有用的日志级别,则为 2 行),即使它只是通过。

b)日志不是很有帮助 - 有用的行似乎是说:

1.2.3.4 - - [15/Aug/2013:03:23:57 +1000] [www.mysite.com/sid#2b5174473a38][rid#2b51748a42d0/initial] (2) rewrite '/pete' -> '/pete-website/'

但由于几乎每一行都有短语“(2) rewrite”,因此很难找到有用的。

我想我需要使用 grep 将日志缩减为有用的内容,然后使用脚本来解析重写规则并找到哪些没有被使用?

我想真正的问题是,在这种情况下我肯定不是唯一的,但我找不到其他人询问它或在网络上的其他任何地方找到答案 - 有人有任何想法吗?

谢谢!

4

1 回答 1

0

使用条件日志

在你RewriteRule的 's 你怀疑自己老了:

 RewriteRule /old/page /new/page [R=301,E=redirectinuse]

在您的日志记录设置中:

 CustomLog logs/old_redirections common env=redirectinuse
于 2013-08-14T21:44:10.860 回答