我有以下规则适用于.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>
答案 0 :(得分:0)
以下正则表达式适用于您:
^(?:www\.)??([^.]+)\.([^.]+)\.([^.]+|[^.]+\.[^.]+)$
双“?”在“www”部分告诉正则表达式进行惰性匹配之后,如果需要它只会匹配www。最终的“tld”部分将与单部分(.net或.com)或两部分(.co.uk)域名匹配。
答案 1 :(得分:0)
此正则表达式与您发布的正则表达式匹配,在可选的“www。”之后匹配由三个组件组成的URL,但最终组件可能是“co。”。或“com。”加上任意两个字母。
^(?:www\.)?([^.]+)\.([^.]+)\.(com?\.[a-z]{2}|[^.]+)$
(编辑以满足评论中的扩展要求。)