【问题标题】:How to do URL Rewrite using IIS Rules written in config file in umbraco?如何使用 umbraco 配置文件中编写的 IIS 规则进行 URL 重写?
【发布时间】:2015-06-27 06:44:35
【问题描述】:

我想使用配置文件中编写的规则进行 URL 重定向和重写,我使用的是 Umbraco(.Net 的 CMS),这是 RewriteRules.config 和 UrlRewriting.config 的 2 个配置文件。

我真正需要的东西

我有一个类似的网址: http://localhost:50777/node1/node2/node3/node4/node5/

应该是: http://localhost:50777/node5/

http://localhost:50777/node1/node2/node3/node4/

应该是: http://localhost:50777/node4/

我想从 URL 中删除父节点并仅显示显示正确页面内容的最后一个节点 URL,但在我的情况下,它给了我 404 Error that page not found。

所以我必须在配置文件中编写一些规则,将截断的 URL 路径重写为精确路径。

请给我任何解决方案,谢谢。

【问题讨论】:

  • 你能把你以前尝试过的包括进去吗?

标签: .net url-rewriting rewrite umbraco umbraco7


【解决方案1】:

这两个可以通过在 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" />

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2014-01-05
    相关资源
    最近更新 更多