【问题标题】:.htaccess 301 redirect to two different sites.htaccess 301 重定向到两个不同的站点
【发布时间】:2017-02-06 02:54:49
【问题描述】:

有一个站点 source.com 即将关闭,因此我们希望将其 301 重定向到另外两个站点 target1.com 和 target2.com。

source.com 上的某些特定 url 必须 301 重定向到 target1.com,包括一些通配符 url,如 source.com/p/*

source.com 上的其他特定 url 必须 301 重定向到 target2.com,包括一些通配符 url,如 source.com/q/*

最后,上面列表/通配符没有覆盖的所有url都必须重定向到target1.com的首页

可以通过 .htaccess 实现吗?

谢谢!

【问题讨论】:

  • 请分享您的旧 .htaccess 代码!
  • 我们将删除 source.com 上的所有内容,因此 .htaccess 文件一开始将完全空白。

标签: .htaccess http-status-code-301


【解决方案1】:

您可以在source.com 的站点根目录.htaccess 中使用这些规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?source\.com$ [NC]
RewriteRule ^p(/.*)?$ http://target1.com%{REQUEST_URI} [L,NC,R=301,NE]

RewriteCond %{HTTP_HOST} ^(?:www\.)?source\.com$ [NC]
RewriteRule ^q(/.*)?$ http://target2.com%{REQUEST_URI} [L,NC,R=301,NE]

即使您删除了source.com 上的所有内容,您也必须保持该域处于活动状态才能使此重定向起作用。

【讨论】:

  • 看起来不错。如果我需要将特定的源 url 重定向到特定的目标 url(通配符未涵盖)怎么办
  • 在这种情况下,保留特定的重定向规则高于那些通用规则
  • 非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多