【问题标题】:url-rewrite not working with slashurl-rewrite 不适用于斜杠
【发布时间】:2018-07-21 17:16:00
【问题描述】:

我的 url-rewrite 有问题

我在 web.config 中的查询如下所示:

    <rule name="show master">
      <match url="master/([_0-9a-z-]+)/([_0-9a-z-].+)/([^.]*)/([^.]*)/([^.]*)" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
      <action type="Rewrite" url="View.aspx?x={R:1}&amp;y={R:2}&amp;w={R:3}&amp;s={R:4}&amp;n={R:5}" />
    </rule>

如果我在下面调用这个 url 是有效的

  https://mydomain/master/xx/yy/ww/ss/12-n

然后我调用下面的这个网址不起作用

  https://mydomain/master/xx/yy/ww/ss/12-n/

我知道 SLASH ,但我需要两个 url 都可以工作

【问题讨论】:

  • 我需要一个重写规则
  • 因为我有更多的150条规则url-rewrite,那就不容易
  • 是的,我尝试了,但是在另一个规则中发生冲突,这是 6 步,在向下规则中是 5 步和冲突

标签: c# asp.net iis url-rewriting seo


【解决方案1】:

这是否适用于添加 /?$ /?在正则表达式的末尾

<rule name="show master"  stopProcessing="true">
  <match url="master/([_0-9a-z-]+)/([_0-9a-z-].+)/([^.]*)/([^.]*)/([^.]*)\/?$" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
  <action type="Rewrite" url="View.aspx?x={R:1}&amp;y={R:2}&amp;w={R:3}&amp;s={R:4}&amp;n={R:5}" />
</rule>

【讨论】:

  • 也请添加 stopProessing =true
  • 我认为调试并获取有关 url 实际转换为的更多信息可能会有所帮助。 docs.microsoft.com/en-us/iis/troubleshoot/…
  • 我尝试了 "\/?$" 和 stopProessing =true ,但不工作
  • 从您的评论中:是的,我尝试了,但是在另一个规则中发生冲突,这是 6 步,在第 5 步和冲突中,我认为重新排序此规则并将其放在顶部是有意义的规则冲突。try 可能位于第 1 位
猜你喜欢
  • 2011-12-05
  • 1970-01-01
  • 2013-01-22
  • 2016-08-23
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
相关资源
最近更新 更多