我想使用配置文件中编写的规则进行URL重定向和重写,我使用的是Umbraco(.Net的CMS),这里是2个配置文件,它们是RewriteRules.config和UrlRewriting.config。
我实际需要什么
我有一个像这样的网址: http://localhost:50777/node1/node2/node3/node4/node5/
应该是: http://localhost:50777/node5/
OR
http://localhost:50777/node1/node2/node3/node4/
应该是: http://localhost:50777/node4/
我想从URL中删除父节点,并仅显示显示正确页面内容的最后一个节点URL,但在我的情况下,它给我404错误,找不到页面。
所以我必须在配置文件中编写一些规则,将截断的URL路径重写为确切的路径。
请给我任何解决方案,谢谢。
答案 0 :(得分:0)
这两个可以通过添加UrlRewriting.config来完成您的需要:
<add name="FiveNodeRewriteRewrite"
virtualUrl="^~/node1/node2/node3/node4/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/$1"
ignoreCase="true" />
<add name="FourNodeRewriteRewrite"
virtualUrl="^~/node1/node2/node3/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/$1"
ignoreCase="true" />
这些假设您的节点在您的示例中是静态命名的。如果你需要更具动感的东西,也许就是这个例子:
<add name="FiveDynamicNodeRewriteRewrite"
virtualUrl="^~/(.*)/(.*)/(.*)/(.*)/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/$5"
ignoreCase="true" />
<add name="FourDynamicNodeRewriteRewrite"
virtualUrl="^~/(.*)/(.*)/(.*)/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/$4"
ignoreCase="true" />