如何简化.htaccess Rewriterule

时间:2010-11-13 10:47:02

标签: regex .htaccess simplification

是否可以简化这些重写规则?我的.htaccess文件中有数百个类似的条目,似乎不是设置410标头的最佳方式。

RewriteRule ^pageID_9363511.html - [G]
RewriteRule ^pageID_9363511_2.html - [G]
RewriteRule ^ci_8819019/thumb_11725326.JPG - [G]
…
…

谢谢

2 个答案:

答案 0 :(得分:1)

您可以像这样使用rewrite map

pageID_9363511.html -
pageID_9363511_2.html -
ci_8819019/thumb_11725326.JPG -

然后您查找请求的URI路径,如下所示:

RewriteCond ${gone:$0} =-
RewriteRule .+ - [G]

唯一的简化是您不需要重复的RewriteRule[G]。使用 dbm 类型的重写映射,您甚至可以访问O(1)而不是O( n )。

答案 1 :(得分:0)

摆脱所有这些重写并说:

ErrorDocument 404 /404.html

现在只需创建一个404.html文件,它就会将所有丢失的文件发送到那里。 410错误消息很少在实践中显示,因为它指的是丢失的服务器而不是丢失的文件:http://www.checkupdown.com/status/E410.html