.htaccess将所有目录和子域重定向到http://domain.com/

问题描述:

我搜索了Google和*以解决此问题。希望这里有人能够提供帮助。我有一个旧网站,我不再使用。我希望所有请求301使用.htaccess重定向到http://example.com/。这包括requestas如:.htaccess将所有目录和子域重定向到http://domain.com/

- http://whatever.example.com/ 
- http://example.com/whatever 
- http://whatever.example.com/whatever 

我已经尝试了一些想法,我在网上找到,但他们要么不会重定向都子域和目录,或者导致无限循环。

谢谢, 迈克

+0

似乎很明显,但我想我应该提及,我使用“example.com”来代替我的真实域名,我并不真正想要重定向到example.com的请求:) – mikecamilleri 2012-07-14 16:21:11

+0

需要查看结构你的网站,你的子域名是如何设置的,并且在每个目录中有多个.htaccess文件。如果你在多个目录中有.htaccess,你将不得不编辑它们。 – Virendra 2012-07-14 17:34:12

+0

我最近在多年前在该网站上使用过的子域名。现在,所有子域都解析到我的服务器上的同一个目录。因此,例如:whatever.example.com,www.example.com和example.com都指向我服务器上的相同public_html文件夹。我认为一个.htaccess文件基本上说明了以下内容:IF request NOT http://example.com/ THEN 301 to http://example.com/。我只是不知道如何在.htaccess中编写代码。谢谢:) – mikecamilleri 2012-07-14 18:47:05

感谢您的帮助@Virendra。

这是我现在拥有的,它的工作原理。第一个条件和规则确保所请求的文件不是/robots.txt,然后是301到http://socialenigma.com/。第二个条件和规则检查主机是socialenigma.com(没有任何子域),如果没有,则检查301到http://socialenigma.com/

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/(robots\.txt).*$ 
RewriteRule . http://socialenigma\.com/ [R=301,L] 
RewriteCond %{HTTP_HOST} !^socialenigma\.com$ 
RewriteRule (.*) http://socialenigma\.com/$1 [R=301,L] 

看起来这并不像它那样高效。也许有人可以帮助凝结这些规则。