我的论坛有一个标签恰好是4位数字“6309”,它已经存在一段时间了。该标签在帖子中显示正常,对应的URL为 /tag/210-tag/210。
但访问类似 /tag/6309 的链接时,并没有返回美观的404页面,而是出现服务器错误:
哎呀
驱动本讨论论坛的软件遇到了意外问题。对此造成的不便,我们深表歉意。
我猜测,此前这可能是引用该标签的有效方式。由于这是服务器错误,谷歌的爬虫正在向我报告此问题。
标签页面如下所示:
我认为返回404状态才是正确的做法。
我的论坛有一个标签恰好是4位数字“6309”,它已经存在一段时间了。该标签在帖子中显示正常,对应的URL为 /tag/210-tag/210。
但访问类似 /tag/6309 的链接时,并没有返回美观的404页面,而是出现服务器错误:
哎呀
驱动本讨论论坛的软件遇到了意外问题。对此造成的不便,我们深表歉意。
我猜测,此前这可能是引用该标签的有效方式。由于这是服务器错误,谷歌的爬虫正在向我报告此问题。
标签页面如下所示:
我认为返回404状态才是正确的做法。
是的,这看起来不太对:
ActionView::Template::Error (No route matches {action: "tag_feed", controller: "tags", tag_id: "9999"})
app/views/list/list.erb:136
app/views/list/list.erb:134
lib/topic_list_responder.rb:16:in 'block (2 levels) in TopicListResponder#respond_with_list'
lib/topic_list_responder.rb:7:in 'TopicListResponder#respond_with_list'
app/controllers/tags_controller.rb:223:in 'block (2 levels) in <class:TagsController>'
app/controllers/tags_controller.rb:229:in 'TagsController#show'
app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:447:in 'ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:1098:in 'ApplicationController#ensure_dont_cache_page'
lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
…
我们应该修复这个错误;如果找不到标签 ID,我们或许还可以回退到查找全数字形式的标签名称。
Wayback 首次注意到该标签出现在 2025-05-13,其 URL 为 https://retrocomputingforum.com/tag/6309,该链接在当时 可以正常访问,并一直有效直到 2025-12-16。
啊,观察得很仔细。也许某种 3xx 重定向响应是合适的,甚至比 404 更好,以防该标签有效?