我想使用以下网址
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]
答案 0 :(得分:0)
此问题实际上是由IIS中的规则放置在API_Tasks目录而不是API_Tasks / V1目录引起的。在V1中添加URL规则解决了该问题。