url-rewriting - IIS 7 URL 重写规则帮助
问题描述
我想采取以下网址
http://MYSERVER/API_Tasks/V1/controller/task.php?taskid=2
并将其重写为: http://MYSERVER/API_Tasks/V1/tasks/2
我创建了以下规则,但它似乎不起作用
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^tasks/([0-9]+)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="controller/task.php?taskid={R:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
原始 Apache .htaccess 规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^tasks/([0-9]+)$ controller/task.php?taskid=$1 [L]
解决方案
该问题实际上是由 IIS 中的规则放置在 API_Tasks 目录而不是 API_Tasks/V1 目录引起的。将 URL 规则添加到 V1 解决了该问题。
推荐阅读
- c++ - 是什么让 C++ 中的堆分配对象“被引用”?
- c# - 如何为自定义 Postgresql 范围类型创建类型映射?
- fortran - ctags 不会为 fortran 自定义类型标记复杂类型语句
- iis - IIS 管理器不会将日志作为故障转移群集的一部分写入共享存储
- servlets - 对 Google Drive 进行身份验证时,我的 draw.io 克隆失败了 doGet
- amazon-web-services - 即使计数变量的值为零,AWS Elasticsearch 也不会删除
- python - 如何在python中获取网络的所有可能的子网ID?
- reactjs - console.log ---> [对象承诺]
- amazon-web-services - 如何从 lambda 正确调用另一个帐户中的 lambda 函数?
- android - 如何从 Dialogflow V2 中的 API 密钥获取 clientAccessToken