2012-03-20 76 views
0

我需要做下面..所遇到的各种例子,但我需要三个条件正则表达式来非WWW重定向到www和子域到文件

结合重定向 1)重定向非WWW /非子域名的请求。例如:

http://xyzsite.comhttp://www.xyzsite.com

2)重定向如果子域被提及。例如:

http://user1.xyzsite.comhttp://www.xyzsite.com/profile?user1

3)重定向到移动版本。例如:

http://m.xyzsite.comhttp://www.xyzsite.com/m

技术细节: 我为在IIS版本6 &使用helicontech的ISAPI_Rewrite模块

+1

什么IIS的版本? – Tomek 2012-03-20 14:03:23

回答

0

1.

  • 符合:^xyzsite.com$
  • 重定向:www.xyzsite.com

2.

  • 匹配度:^(?!=www.)(.*).xyzsite.com$
  • 重定向:www.xyzsite.com/profile?$1

3。

  • 比赛:^m.(.*)$
  • 重定向:www.$1/m
-1

我花了一些时间在这hopefuly让你在正确的方向。我想出了最简单的解决方案,除非你明确指定了一个约束。 这意味着我在正则表达式中硬编码xyzsite.com。 1)重定向非www /非子域请求。1)重定向非www /非子域请求。例如:http://xyzsite.comhttp://www.xyzsite.com

pattern: 
http://(.*?.com) 

replacement: 
http://www.$1 

2)重定向如果子域被提及。例如:http://user1.xyzsite.comhttp://www.xyzsite.com/profile?user1

pattern: 
(http://)(.*?)\.(.*) 

replacement: 
$1www.$3/profile?$2 

3)重定向到移动版本。例如:http://m.xyzsite.comhttp://www.xyzsite.com/m

pattern: 
http://m\.(.*) 

replacement: 
http://www.$1/m 

希望这有助于巴克利

+0

你对1)的回答会将'http:// www.xyzsite.com'重定向到'http:// www.www.xyzsite.com',然后到'http://www.www.xyzsite。 com'在无限的重定向循环中 – Bohemian 2012-03-21 08:44:01

0

以下是V3的ISAPI_Rewrite规则(希望这是你使用的版本):

RewriteBase/
RewriteCond %{HTTP_HOST} ^xyzsite\.com$ 
RewriteRule .? http://www.xyzsite.com [NC,R=301,L] 

RewriteCond %{HTTP_HOST} ^m\.xyzsite\.com$ 
RewriteRule .? http://www.xyzsite.com/m [NC,R=301,L] 

RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.xyzsite\.com$ 
RewriteRule .? http://www.xyzsite.com/profile?%1 [NC,R=301,L]