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]