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

.htaccess 将任何子域重定向到主域上的页面,.htaccess,redirect,subdomain,.htaccess,Redirect,Subdomain,真的只是一个快速的。我希望能够将键入subdomain.mydomain.com的任何人重定向到我的主域上的页面。i、 例如,如果我键入:answers.mydomain.com我将被重定向到mydomain.com/suberror 如果可能的话,我希望这是一个通用的规则,因为我认为添加语句以排除我不希望重定向的任何子域比添加语句以包括所有其他子域更容易。顺便说一句,我需要使用.htaccess文件将其删除。尝试将其添加到.htaccess文件中的适当位置: RewriteEngine On

真的只是一个快速的。我希望能够将键入
subdomain.mydomain.com
的任何人重定向到我的主域上的页面。i、 例如,如果我键入:
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,可以将
^
调整为适当的值

编辑:

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

要排除www.mydomain.com,请在重写规则之前添加此行:

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

如果我们在cPanel中使用基于Linux的托管,甚至是共享托管,在创建子域时,我们可以创建whildcard子域,并且可以指定系统目录的路径

上述配置在
.htaccess
文件中生成以下代码

RewriteEngine On
RewriteCond %{HTTP_HOST} ^salebybrands\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.salebybrands\.com$
RewriteRule ^Folder_To_Redirect_Requests\/?(.*)$ "http\:\/\/salebybrands\.com\/$1" [R=301,L]
现在,每个子域请求(例如,
abc.salebybrands.com
)都将重定向到
salebybrands.com/Folder\u-to\u-redirect\u请求


注意:通配符子域将只重定向未知子域。如果您已经创建了其他子域,它们将按原样工作,并且它们到重定向的映射不会被覆盖。

谢谢您的回答,但这是否仅在用户尝试转到
answers.mydomain.com
时才起作用?如果是这样,我想你误解了我的问题。我想这样做的任何子域,有点像一个通配符。i、 e如果
RewriteCond
支持通配符,它可能看起来像
*.mydomain.com
再次感谢Jon-正是我想要的!虽然它没有达到我预期的全部效果,但这是不可避免的,我认为任何数量的
.htaccess
都不能解决当前的问题。哦,好吧,你仍然是对的,而且它基本上是有效的!例如:我试图巧妙地将cPanel在创建附加域时自动创建的子域重定向到一个页面,这样对普通用户来说就好像没有子域一样!如果是这种情况,请将括号中的
R
替换为
P
。不幸的是,仍然没有成功。(我在IE9上使用inPrivate模式进行测试-每次更改都会有一个新的会话)。我想我需要在未被重定向的子域根目录下的
.htaccess
文件中添加一些代码,如果用户未访问附加域,即试图通过子域访问网站,则会重定向。?如果是这样,是否有可能做到这一点,以及如何做到这一点?另外,是否可以在不更改URL的情况下重定向到页面?这对我来说非常有用。我只需将子域添加到/etc/apache/default-ssl.conf文件主体的顶部,就可以在GCP中工作。我的DNS条目使用相同的IP,因此当使用指定的url时,重定向会捕获它并将您发送到子域。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^salebybrands\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.salebybrands\.com$
RewriteRule ^Folder_To_Redirect_Requests\/?(.*)$ "http\:\/\/salebybrands\.com\/$1" [R=301,L]