我们会将整个内部网从一个 CMS 迁移到另一个。所有 URL 都将以不可预测的模式发生变化,但我可以捕获一个包含原始新 URL 的文件,我可以将其输入任何内容。我有数十万个 URL,而不仅仅是几百个。
我想做的是:应根据数据库检查每个未找到的 URL (404),如果发现新 URL,则改为发出 301/308。如果查找不成功,在 404 消息中建议类似页面的一些技巧将是一个额外的好处。
这是正确的方法还是我应该始终首先检查重定向?
我将如何在 Apache2 中做到这一点?那是自定义的 404 模块吗?
我想通了,部分。虽然 404 仍然让我望而却步,但我可以使用 mod_rewrite 和 RewriteMap 指令主动重写 URL,而不是首先依赖 404 状态。这可以工作:
详细说明在这里。现在有了 ErrorDocument 语句,原来的目标就可以实现了。