UrlRewriting.net 将 .htm 重写为无扩展名,但忽略 umbraco 目录
UrlRewriting.net rewrite .htm to extensionless, but ignore umbraco directories
我需要将我网站的所有遗留 .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/" />
所以像这样的请求返回 404:
http://www.website.com/umbraco/views/components/application/umb-navigationl?umb__rnd=7.4.2.1536555776
我很确定我的问题出在我的正则表达式上,但我不确定。有人愿意提供建议吗?
原来我是个骗子。 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/" />
我需要将我网站的所有遗留 .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/" />
所以像这样的请求返回 404:
http://www.website.com/umbraco/views/components/application/umb-navigationl?umb__rnd=7.4.2.1536555776
我很确定我的问题出在我的正则表达式上,但我不确定。有人愿意提供建议吗?
原来我是个骗子。 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/" />