将任何子域重定向到主域上的页面

问题描述:

真的很快。我希望能够将任何键入subdomain.mydomain.com的人重定向到我的主域中的页面。即如果我键入:answers.mydomain.com例如,我将被重定向到mydomain.com/suberror将任何子域重定向到主域上的页面

我希望这是一个通用的规则,如果可能的话,因为我认为添加语句可以更容易地排除任何我不想被重定向的子域,而不是添加语句来包含其他每个子域。顺便提一下,我需要使用.htaccess文件。

请你可以告诉我,如果这是可能的,如果是这样,如何....在此先感谢!

尝试在你的.htaccess文件中添加这到适当的地方:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^answers\.mydomain\.com$ [NC] 
RewriteRule^http://mydomain.com/suberror [L,R] 

只要请求的主机是answers.mydomain.com,该规则将被应用。随着正则表达式匹配设置为^任何 URI将匹配,如果你想只有特定URI请求重定向到/ suberror目标将被重定向到http://mydomain.com/suberror

,你可以调整^的东西合适。

编辑:

对于所有子域(包括www.mydomain.com):

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC] 
RewriteRule^http://mydomain.com/suberror [L,R] 

要排除www.mydomain.com,在重写规则之前加入这一行:

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC] 
+1

感谢您的答案,但这只有在用户试图访问'answers.mydomain.com'时才有效?如果是这样,我认为你误解了我的问题。我想为任何子域做这个,有点像通配符。即如果'RewriteCond'支持通配符,它​​可能看起来像'* .mydomain.com' – Andy 2012-01-04 18:56:39

+1

看到我添加的编辑 – 2012-01-04 18:59:02

+1

再次感谢乔恩 - 正是我想要的!虽然它没有达到我预期的全部效果,但这是不可避免的,我认为任何数量的'.htaccess'都不能解决当前的情况。噢 - 你还是对的,它大部分都可以工作!在例子中:我试图狡猾和重定向的子域cPanel自动创建一个插件域时创建一个页面,所以它看起来好像没有一般用户的子域! – Andy 2012-01-04 19:26:10