Intelligencia.UrlRewriter规则帮助

时间:2009-07-18 14:36:24

标签: regex url-rewriting

我有以下规则适用于.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}&amp;domain=${domain}.${tld}&amp;defaultpage=yes" processing="stop"/>
        </if>

2 个答案:

答案 0 :(得分:0)

以下正则表达式适用于您:

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

双“?”在“www”部分告诉正则表达式进行惰性匹配之后,如果需要它只会匹配www。最终的“tld”部分将与单部分(.net或.com)或两部分(.co.uk)域名匹配。

答案 1 :(得分:0)

此正则表达式与您发布的正则表达式匹配,在可选的“www。”之后匹配由三个组件组成的URL,但最终组件可能是“co。”。或“com。”加上任意两个字母。

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

(编辑以满足评论中的扩展要求。)