真的很快。我希望能够将任何键入subdomain.mydomain.com
的人重定向到我的主域上的页面。即如果我输入:answers.mydomain.com
我会被重定向到mydomain.com/suberror
。
如果可能的话,我希望这是一个通用的规则,因为我认为添加语句以排除我不想重定向的任何子域更容易,而不是添加语句以包含其他所有子域。顺便说一句,我需要使用.htaccess
文件。
请你告诉我这是否可能,如果是的话,怎么样......提前谢谢!
答案 0 :(得分:21)
尝试将其添加到.htaccess文件中的适当位置:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^answers\.mydomain\.com$ [NC]
RewriteRule ^ http://mydomain.com/suberror [L,R]
只要请求的主机为answers.mydomain.com
,就会应用该规则。将正则表达式匹配设置为^
时,任何 URI都将匹配,目标将重定向到http://mydomain.com/suberror
如果您只希望将特定的URI请求重定向到/ suberror,则可以将^
调整为适当的值。
编辑:
对于所有子域名(包括www.mydomain.com):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC]
RewriteRule ^ http://mydomain.com/suberror [L,R]
要排除www.mydomain.com,请在RewriteRule之前添加此行:
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
答案 1 :(得分:0)
如果我们使用基于Linux的主机甚至共享主机,在cPanel中,在创建子域时,我们可以创建一个通配符子域,我们可以指定系统目录的路径。
以上配置在.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_To_Redirect_Requests
注意:通配符子域只会重定向未知的子域。如果您创建了其他子域,它们将按原样工作,并且它们到重定向的映射不会被覆盖。