2009-07-18 109 views
0

我有低于正常工作与像.net.com,.MOBI但如果域名有2个部分,如co.uk这是行不通的非标准域名规则。Intelligencia.UrlRewriter规则帮助

我怎么能调整它,所以它会在同一时间使用.NET,.com和.co.uk工作?

  <if header="HTTP_HOST" match="^(?:www\.)?([^.]+)\.([^.]+)\.([^.]+)$"> 
      <set property="subdomain" value="$1"/> 
      <set property="domain" value="$2"/> 
      <set property="tld" value="$3"/> 
      <rewrite url="~/default.aspx" to="~/PageEngine.ashx?subdomain=${subdomain}&amp;domain=${domain}.${tld}&amp;defaultpage=yes" processing="stop"/> 
     </if> 

回答

0

此正则表达式,如您发布的一个,与之匹配的网址可选后由三个部分组成的“www。”,除了最后一个组件可能是“合作”。或“com”。加上任何两个字母。

^(?:www\.)?([^.]+)\.([^.]+)\.(com?\.[a-z]{2}|[^.]+)$ 

(编辑,以满足从注释扩展要求。)

0

下面的正则表达式应该为你工作:

^(?:www\.)??([^.]+)\.([^.]+)\.([^.]+|[^.]+\.[^.]+)$ 

双 “?”在“www”部分告诉正则表达式执行懒惰匹配之后,它将只在必要时匹配www。最后的“tld”部分将与单一部分(.net或.com)或两部分(.co.uk)域名匹配。

+0

感谢。它按预期工作 – nLL 2009-07-18 21:21:38

+0

抱歉,我已经在第一,但与你的解决方案,同时subdomain.domain.com工作正常www.subdomain.domain.co.uk不将其标记为答案 - NLL 7分钟前 – nLL 2009-07-18 22:17:18