【问题标题】:How to redirect whole domain with subdomains to another domain如何将带有子域的整个域重定向到另一个域
【发布时间】:2017-10-18 03:06:34
【问题描述】:

我需要重定向:

anything.domain.comdomain.com/anything

domain2.com

我已经用通配符尝试了这个.htaccess 代码:

RewriteEngine On
RewriteRule ^(.*)$ http://domena2.com/$1 [R=301,L]

但它仍然将domain1.com/123 重定向到domain2.com/123 而不是domain2.com,而且我的子域根本没有重定向。

【问题讨论】:

  • 如果它没有重定向子域,那么您的子域似乎指向文件系统的不同区域(或完全不同的文件系统?),或者您在这些子域上有其他 .htaccess 文件?如果您只想重定向到domain2.com/(即文档根目录),那么为什么要使用$1 反向引用并在RewriteRule 中捕获子模式?
  • 我从另一个论坛上的某个人那里得到了这个代码,我不知道它是如何工作的。我的问题有点复杂,我买了一个过期的域名,我有很多流量知道它至少有一个子域,但可能更多,这就是为什么 id 喜欢在不知道所有子域的情况下将任何内容重定向到我的域

标签: apache .htaccess url redirect subdomain


【解决方案1】:

我购买了一个流量很大的过期域名

如果子域没有实际配置,那是你的问题。

您需要在 DNS 中配置所有子域(或者可能创建一个 通配符 子域),否则它们甚至无法解析(这可能是您在浏览器中遇到的错误?) .如果他们不解决,那么他们就不会到达您的网站,.htaccess 中的代码甚至不会被处理。

此外,如果您希望重定向到主页,请删除 $1 反向引用(如我的评论中所述)。但是,将所有内容重定向到主页并不一定有利于 SEO。无论如何,Google 很可能会将这些链接视为软 404,并且很快就会从 SERP 中删除。

尝试以下方法:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain2\.com
RewriteRule ^ http://domain2.com/ [R=302,L]

这会将所有不针对domain2.com 的请求重定向到domain2.com 的根目录。

确保在测试前清除浏览器缓存,因为浏览器会硬缓存 301。出于这个原因,只有当你确定它工作正常时,才将上面的302(临时)更改为301(永久)。

我从另一个论坛上的某个人那里得到了这个代码

了解您在.htaccess 文件中复制/粘贴的内容很重要,因为它会很快破坏您的网站。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多