0

我正在做一个站点迁移,我想知道是否有办法在 httacess 中应用多个规则以及正确的顺序,以便如果多个规则匹配,页面将被正确重定向。这是场景:

  1. 某些页面将具有完全匹配的重定向(例如,www.a.com/page1.html 到 www.b.com/page1_new.html)。我假设我可以为这些使用 Redirect 301

  2. 我在站点 a 上有一个 wordpress 博客,该博客将访问站点 b,但位于不同的子目录中。所以我需要将 www.a.com/blog/ 中的所有内容重定向到 www.b.com/wordpress/ 。我需要有关此语法的帮助。

  3. 对剩下的任何内容进行全部重定向,这将重定向任何不匹配 1 或 2 的内容。对于这些,文件名将是相同的,例如,将 www.a.com/page1.html 重定向到 www.b.com/page1 .html 或 www.a.com/dir1/3.html 到 www.b.com/dir1/3.html 。我想我也可以解决这个问题。

所以我真的需要知道我是否可以按照上面的顺序将规则放在 .htaccess 中,如果这是它们的执行方式,以及选项 2 的正确语法(我已经看到 RewriteCond/RewriteRule 和 RedirectMatch 建议) .

谢谢,

账单

4

1 回答 1

0

1.而且无论如何2.您都必须在服务器上做www.a.com,并且该Redirect指令对于这两者都足够了。

并且3.必须在 的服务器上发生www.b.com,我不建议在任何地方重定向,但只需让其ErrorDocument 404处理即可 - 因为:如果某些内容不再可用,则应通知用户 - 而不是自动重定向到主页或其他东西,至少恕我直言。(在404 响应文档中为他提供替代选择和搜索表单是没有问题的。)搜索引擎也会更喜欢这个,因为它可以帮助他们更快地删除死链接。尽管为此响应代码410 Gone会更合适。因此,如果您可以区分不再存在的旧(重写)URL,以及“真正的”404,其中所请求的 URL 以前从未有过任何交付,这将是可行的方法——410对于旧的、死的 URL,以及404任何其他不存在的东西。(为了区分这两种情况,一个 404 处理脚本检查请求的 URL 与包含旧链接 URL 的数组可能是一个简单的解决方案。)如果这是不可能的,那么只回答所有“未找到”的请求410 Gone应该不会有害任何一个。

于 2013-05-30T15:19:27.090 回答