提问人:Hashim Kayani 提问时间:11/18/2023 更新时间:11/20/2023 访问量:35
IIS URL 重写传递查询参数,而不将其包含在 URL 中
IIS URL Rewrite pass query parameter without including it in the URL
问:
我有一个类似于 URL 的 URL,或者我希望能够将 URL 重写为独立的 slug URL。我想重写和重写 我希望重写这些 URL 而不是重定向,这样用户就不必看到查询参数。但我也希望这两个页面不要混淆,这样我就不被允许去并最终查看我尝试使用重写地图,各种不同的模式,但这就是我现在拥有的.example.com/navbar?tab=1
example.com/navbar?tab=2
example.com/navbar?tab=1
example.com/this-is-my-slug
example.com/navbar?tab=2
example.com/another-slug-of-mine
example.com/this-is-my-slug?tab=2
example.com/another-slug-of-mine
Web.config
...
<rule name="NavigationRewrite1">
<match url="^this-is-my-slug" ignoreCase="false" />
<action type="Rewrite" url="/navbar?tab=1" appendQueryString="false" />
</rule>
<rule name="NavigationRewrite2">
<match url="^another-slug-of-mine" ignoreCase="false" />
<action type="Rewrite" url="/navbar?tab=2" appendQueryString="false" />
</rule>
...
有没有办法使用 IIS 重写规则实现我正在尝试执行的操作?或者我必须研究从 C# 路由?
答:
0赞
samwu
11/20/2023
#1
如果要重写为 ,可以参考以下规则:example.com/navbar?tab=1
example.com/this-is-my-slug
<rule name="Test" stopProcessing="true">
<match url="^navbar$" />
<conditions>
<add input="{QUERY_STRING}" pattern="tab=1" />
</conditions>
<action type="Redirect" url="example.com/this-is-my-slug" redirectType="Temporary" />
</rule>
评论