我正在进行网站迁移,我想知道是否有办法在httacess和正确的顺序中应用多个规则,这样如果多个规则匹配,页面将正确重定向。这是场景:
某些网页会有完全匹配的重定向(例如www.a.com/page1.html到www.b.com/page1_new.html)。我假设我可以使用Redirect 301来实现这些
我在网站上有一个wordpress博客,它将转到网站b,但在不同的子目录中。所以我需要将www.a.com/blog/中的所有内容重定向到www.b.com/wordpress/。我需要有关此语法的帮助。
捕获所有剩余的重定向,这将重定向任何不匹配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建议)。
谢谢,
比尔
答案 0 :(得分:0)
1.
和2.
你必须在www.a.com
的服务器上进行操作,Redirect
指令对两者都应该足够了。
并且3.
必须在www.b.com
的服务器上进行,我不建议在任何地方重定向,但只需让ErrorDocument 404
处理 - 因为:如果某些内容不再可用,应该通知用户 - 并且不会自动重定向到主页或其他东西,至少恕我直言。 (没有问题,为他提供替代选择,也许是在 404响应文档中的搜索表单。)搜索引擎也会更好地喜欢这个,因为它可以帮助他们更快地删除死链接。尽管如此,响应代码410 Gone
会更加合适。因此,如果您可以区分旧的(重写的)不存在的网址更多,以及请求的网址之前从未提供任何内容的“真实”404,那将是要走的路 - 410
用于旧的死网址,404
用于其他任何不存在的网址。 (为了区分这两种情况,404处理脚本检查请求的URL与包含旧链接URL的数组可能是一个简单的解决方案。)如果这不可能,用{{1}回答所有“未找到”请求也不应该有害。