.htcaccess重写条件到IIS webconfig

时间:2018-01-11 00:50:21

标签: php iis

现在我正在尝试为RESTful api执行重定向。我在IIS上使用PHP。现在我正在努力将以下内容转换为Web配置中的XML。

RewriteEngine On    # Turn on the rewriting engine

RewriteRule ^api/([a-zA-Z_-]*)$ api.php?name=$1 [NC,L]

会翻译成?

<rewrite>
    <rules>
        <rule name="api_test_redirect" stopProcessing="true">
            <match url="^api/([a-zA-Z_]*)$" />
            <action type="Rewrite" url="api.php?name={R:1}" appendQueryString="true" />
    </rule>
    </rules>
</rewrite>

我尝试访问api时遇到404错误。

TL; DR index.com/api/data应更改为index.com/api?name=data,但它无效

编辑:我也尝试通过网址重写添加它,但似乎没有进行任何更改。

enter image description here

1 个答案:

答案 0 :(得分:0)

所以问题的解决方案是我需要包含相对于根目录的整个路径

<rewrite>
    <rules>
    <rule name="api_test_redirect" stopProcessing="true">
        <match url="^path/to/from/root/api/([a-zA-Z_]*)$" />
        <action type="Rewrite" url="path/to/from/root/api.php?name={R:1}" appendQueryString="true" />
    </rule>
</rules>