url-rewriting - 如何制定此重写规则以便它可以接受查询字符串?
问题描述
我有一个使用 map 方法的 url 重写规则。
<rewriteMap name="Pages">
<add key="/search" value="/search.asp" />
</rewriteMap>
<rule name="Rewrite rule1 for Pages">
<match url=".*" />
<conditions>
<add input="{Pages:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" appendQueryString="true" />
</rule>
我的问题是当我像下面这样使用此页面时,出现错误:
/搜索?关键字=数学
我收到 HTTP 错误 404.0 - 未找到
详细错误信息:Module IIS Web Core Notification MapRequestHandler Handler StaticFile Error Code 0x80070002 Requested URL http://localhost:85/search?keyword=math Physical Path D:\webs\V5ST\HTML\search Logon Method Anonymous Logon User Anonymous
我怎样才能做到这一点,以便将任何查询字符串传递给 search.asp?
解决方案
您可以使用以下重写规则:
<rule name="query string redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{REQUEST_URI}" pattern="search\?(.*)" />
</conditions>
<action type="Rewrite" url="http://localhost:132/search.asp?{C:1}" appendQueryString="false" />
</rule>
问候, 雅尔帕
推荐阅读
- sql - 如何在 Oracle SQL 中获取两个日期之间的月份
- c# - 在 asp.net 核心中看不到另一个项目的 DbContext
- api - REST API OPTIONS 可以用作 HATEOAS 唯一的请求吗?
- git - Bamboo 找不到 Git 子模块
- android - 如何使用 Gradle 从 Maven 获取/打印已解析的依赖项组、名称和版本?
- javascript - 从 CodeSandbox 导出 ZIP 后无法在模块外使用导入语句
- python - 我们需要做些什么来修复这个等式,以便它在我们的 Python 代码中工作?
- r - 使用与列同名的参数过滤小标题的函数
- sqlite - Flutter FutureBuilder 不使用来自 sqlite 的数据构建
- python - 创建根据数据帧中的行自动递增的称为 ID 的列