UrlRewriting.net将.htm重写为无扩展名,但忽略了umbraco目录

时间:2016-07-08 15:29:11

标签: regex umbraco urlrewriting.net

我需要将我网站的所有遗留.htm网址重定向到无扩展网址,所以:

http://www.website.com/page.htm  -->  http://www.website.com/page

我在config / UrlRewriting.config中创建了以下规则,修复了上述问题,但创建了一个问题,其中所有后台路径都返回404:

<add name="HtmToExtensionless"
     redirect="Domain"
     ignoreCase="true" 
     rewriteUrlParameter="IncludeQueryStringForRewrite"
     virtualUrl="http://www.website.com/(.*)(\.htm)"
     redirectMode="Permanent"
     destinationUrl="http://www.website.com/$1" />

所以像这样的请求返回404:

http://www.website.com/umbraco/views/components/application/umb-navigationl?umb__rnd=7.4.2.1536555776

我很确定我的问题在于我的正则表达式,但我不确定。有人建议吗?

1 个答案:

答案 0 :(得分:0)

原来我是个骗子。 Umbraco实际上会请求具有.html个扩展名的资源,而我的正则表达式正在抓取这些资源并从中剥离.htm。只需检查字符串的开头和结尾,现在我们就是金色的:

<add name="HtmToExtensionless"
     redirect="Domain"
     ignoreCase="true" 
     rewriteUrlParameter="IncludeQueryStringForRewrite"
     virtualUrl="^http://www.website.com/(.*)(\.htm)$"
     redirectMode="Permanent"
     destinationUrl="http://www.website.com/$1" />