如何简化 .htaccess 重写规则

发布于 2024-10-02 10:03:35 字数 258 浏览 7 评论 0原文

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

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

谢谢

Is it possible to simplfy these RewriteRules? I've hundreds of similar entries in my .htaccess file and it seems not to be the best way to set a 410 Header.

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

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

双马尾 2024-10-09 10:03:35

您可以使用重写地图,如下所示:

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) 的访问时间。

You could use a rewrite map like this:

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

Then you lookup the requested URI path like this:

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

The only simplification is that you don’t need the repetitive RewriteRule and [G]. And with a rewrite map of the type dbm you could even have an access time of O(1) instead of O(n).

思念绕指尖 2024-10-09 10:03:35

摆脱所有这些重写规则并说:

ErrorDocument 404 /404.html

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

Get rid of all those rewritrules and say:

ErrorDocument 404 /404.html

Now just make a 404.html file and it will send all missing files to there. The 410 error message is rarely if ever shown in practice as it refers to a missing server as opposed to a missing file: http://www.checkupdown.com/status/E410.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文