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}&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]+)$" />
这是我的测试结果:
我在 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}&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]+)$" />
这是我的测试结果: