0

我需要将.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

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

4

1 回答 1

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" />
于 2016-07-08T16:57:30.110 回答