重定向主域,但不重定向子域

时间:2018-07-17 12:20:20

标签: regex .htaccess redirect url-redirection

我正在与多个卖家合作的网站上,每个卖家都有自己的子域。我想做的是在访问主域(主主页)时将访问者重定向到登录页面,但是在访问子域(卖方主页)时应该没有重定向。

myproject.com/重定向-> myproject.com/login/

但是

seller.myproject.com/不应重定向。

我已经尝试使用htaccess进行一些操作,但是最终我也将子域也重定向到seller.myproject.com/login/

有人因为我对正则表达式感到不满意而向我指出正确的方向吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

我认为您可以使用正则表达式解决问题,只需使用两次出现的点作为用户在卖方页面上的标识即可。我不知道您使用的是哪种语言,但是您可以从这里获得想法。

String input="seller.myproject.com/";
Pattern p=Pattern.compile(("[a-zA-z0-9]\\.[a-zA-z0-9]\\.com"));
Matcher m=p.matcher(input);
if(m.find())
{
     //don't redirect
}
else
{
     //redirect
}

答案 1 :(得分:0)

好吧,我刚刚找到了这个:

https://stackoverflow.com/a/16886639/8694548

这可行,但是现在的问题是如何让所有子域都具有这种行为,而不是手动将其放置在那里。

所以不是!^(foo|bar)\.example\.com$> !^(*)\.example\.com$

感谢您的帮助!

答案 2 :(得分:0)

好的,我现在知道了,这对我有用:

# Redirect anything except subdomains RewriteCond %{HTTP_HOST} !^(.*)\.myproject\.com$ [NC]

# Redirect to myproject.com/login, preserving the URI RewriteRule ^(.*)$ https://myproject.com/login/ [L,R=302]