我有下面的规则,如.net.com,.mobi标准域名的工作很好,但如果域名有2个部分,如co.uk它不工作。
我如何调整它,使其可以同时与.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}&domain=${domain}.${tld}&defaultpage=yes" processing="stop"/>
</if>发布于 2009-07-18 20:11:14
这个正则表达式与您发布的正则表达式一样,将匹配一个URL,该URL由可选的"www.“后面的三个组件组成,但最后一个组件可能是”co“。或者"com.“加上任意两个字母。
^(?:www\.)?([^.]+)\.([^.]+)\.(com?\.[a-z]{2}|[^.]+)$(编辑以满足评论中的扩展要求。)
发布于 2009-07-18 16:12:04
下面的正则表达式应该适用于您:
^(?:www\.)??([^.]+)\.([^.]+)\.([^.]+|[^.]+\.[^.]+)$替身"?“在" www“部分告诉正则表达式执行延迟匹配之后,它将只在必要时匹配www。最后的"tld“部分将匹配由一部分(.net或.com)或两部分(.co.uk)组成的域名。
https://stackoverflow.com/questions/1147693
复制相似问题