IIS web.config url 重写

IIS web.config url rewriting

我在 web.config 中使用以下规则:

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
  <system.webServer>
   <rewrite>
    <rules>
     <rule name="rewrite">
      <match url="([0-9]+)/([0-9]+)" />
      <action type="Rewrite" url="index.php?year={R:1}&amp;item={R:2}" />
     </rule>
    </rules>
   </rewrite>
 </system.webServer>
</configuration>

有效。

但是如果用户在第二个查询(item)中写了一个或多个字母,我需要显示 404 错误,例如1b 或 1bla 等

它应该只允许一个(正)数字,并且可能允许像 ?utm_source=anothersite?ref=anothersite 这样的查询

换句话说,url应该是:

www.mysite.com/{年}/{项}

其中 {year} 和 {item} 都是强制性的并且只能是数字,不允许使用其他元素(例如:www.mysite.com/{year}/{item}/{somethingelse }), 除了 ?key=value.

如何更改 匹配 url 值以获得该结果?

谢谢。

请在您的图案末尾添加“$”。

<match url="([0-9]+)/([0-9]+)$" />

这是我的测试结果: