将任何子域重定向到主域上的页面
问题描述:
真的很快。我希望能够将任何键入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]
感谢您的答案,但这只有在用户试图访问'answers.mydomain.com'时才有效?如果是这样,我认为你误解了我的问题。我想为任何子域做这个,有点像通配符。即如果'RewriteCond'支持通配符,它可能看起来像'* .mydomain.com' – Andy 2012-01-04 18:56:39
看到我添加的编辑 – 2012-01-04 18:59:02
再次感谢乔恩 - 正是我想要的!虽然它没有达到我预期的全部效果,但这是不可避免的,我认为任何数量的'.htaccess'都不能解决当前的情况。噢 - 你还是对的,它大部分都可以工作!在例子中:我试图狡猾和重定向的子域cPanel自动创建一个插件域时创建一个页面,所以它看起来好像没有一般用户的子域! – Andy 2012-01-04 19:26:10