IIS 7 URL重写规则协助

时间:2019-07-10 15:17:22

标签: url-rewriting iis-7

我想使用以下网址

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]

1 个答案:

答案 0 :(得分:0)

此问题实际上是由IIS中的规则放置在API_Tasks目录而不是API_Tasks / V1目录引起的。在V1中添加URL规则解决了该问题。