Apache 如何将带有子域的整个域重定向到另一个域

Apache 如何将带有子域的整个域重定向到另一个域,apache,.htaccess,url,redirect,subdomain,Apache,.htaccess,Url,Redirect,Subdomain,我需要重定向: anything.domain.com和domain.com/anything 到 我已尝试使用通配符编写此.htaccess代码: RewriteEngine On RewriteRule ^(.*)$ http://domena2.com/$1 [R=301,L] 但它仍然将domain1.com/123重定向到domain2.com/123而不是domain2.com,并且我的子域根本没有重定向 我买了一个过期的域名,有很多流量,我知道它至少有一个子域名,但可能更多,这就

我需要重定向:

anything.domain.com
domain.com/anything

我已尝试使用通配符编写此
.htaccess
代码:

RewriteEngine On
RewriteRule ^(.*)$ http://domena2.com/$1 [R=301,L]
但它仍然将
domain1.com/123
重定向到
domain2.com/123
而不是
domain2.com
,并且我的子域根本没有重定向

我买了一个过期的域名,有很多流量,我知道它至少有一个子域名,但可能更多,这就是为什么我想重定向到我的域名,而不知道所有子域

如果子域没有实际配置,那么这就是您的问题

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

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

请尝试以下操作:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain2\.com
RewriteRule ^ http://domain2.com/ [R=302,L]
这会将所有不针对
domain2.com
的请求重定向到
domain2.com
的根目录

确保在测试之前清除浏览器缓存,因为浏览器会硬缓存301s。因此,仅当您确定上述
302
(临时)工作正常时,才将其更改为
301
(永久)


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


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

如果它没有重定向子域,那么您的子域似乎指向文件系统的不同区域(或完全不同的文件系统?),或者您在这些子域上有其他
.htaccess
文件?如果您只想重定向到
domain2.com/
(即文档根目录),那么为什么要使用
$1
反向引用并捕获
重写规则中的子模式呢?我从另一个论坛上的某个人那里得到这段代码,我不知道它是如何工作的。我的问题稍微复杂一点,我买了一个过期的域名,有很多流量,我知道它至少有一个子域名,但可能更多,这就是为什么我想重定向到我的域名,而不知道所有子域
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain2\.com
RewriteRule ^ http://domain2.com/ [R=302,L]