【问题标题】:htaccess domain redirect to newdomainhtaccess 域重定向到新域
【发布时间】:2014-04-06 22:13:32
【问题描述】:

我有域名 www.oldsite.com,我设置了一个重定向来转发到 www.newsite.com/new

但是当我用谷歌搜索旧网站时,它的所有子链接都会转到 www.newsite.com/new/sublink

如何编辑 htaccess 文件,使子链接永远不会通过

RewriteCond %{HTTP_HOST} ^oldsite\.com*$ [OR]
RewriteCond %{HTTP_HOST} ^www\.oldsite\.com*$
RewriteRule ^/?$ "http\:\/\/www\.newsite\.com\/new" [R=301,L]

简而言之,oldsite.com 中涉及的所有链接都应重定向到 newsite.com/new

我阅读了以下内容,但似乎没有多大帮助。 htaccess: domain hosted on subdirectory

【问题讨论】:

  • 您不需要旧站点/新站点位中的 " 引号或 \ 反斜杠...

标签: php .htaccess redirect


【解决方案1】:

下面的.htaccess 应该只放在旧域的根文件夹中:

RewriteCond %{HTTP_HOST} ^(www\.)?oldsite\.com$ [NC]
RewriteRule ^ http://www.newsite.com/new [R=301,L]

它将任何东西从旧域重定向到新域,例如:

http://oldsite.com/someurl

将前往:

http://www.newsite.com/new

旧站点中的任何 URL 都不会传递到新站点,它们将全部发送到 /new

注意: 确保您在旧域的其他文件夹中没有任何额外的 .htaccess 文件,因为这些文件会将之前的规则设置为空。


如果您只想将主域发送到新域而不包含任何 URL:

RewriteCond %{HTTP_HOST} ^(www\.)?oldsite\.com$ [NC]
RewriteRule ^/?$ http://www.newsite.com/new [R=301,L]

另一种方法是处理新站点上的所有 URL,如下所示.htaccess

RewriteCond %{HTTP_HOST} ^(www\.)?oldsite\.com$ [NC]
RewriteRule ^ http://www.newsite.com/new%{REQUEST_URI} [R=301,L]

它将任何东西从旧域重定向到新域,例如:

http://oldsite.com/someurl

将前往:

http://www.newsite.com/new/someurl

如果您不希望新的出现,只需从上述规则中删除 /new

【讨论】:

  • 完美,搞定,谢谢
  • 非常好的和详细的答案。
猜你喜欢
  • 1970-01-01
  • 2016-06-24
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2020-06-15
  • 2012-04-03
相关资源
最近更新 更多