将PHP REST应用程序从Apache迁移到IIS

时间:2016-02-17 19:41:02

标签: php apache .htaccess iis web-config

我有.htaccess和前端应用程序的瘦框架,它通过http协议调用api。

Apache 上调用 / api / v1 / login - 返回 JSON 响应。

IIS 上,当我执行相同的调用时,它会返回 /index.php

的html内容

apache .htaccess 是:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]

IIS web.config (来自Slim框架网站):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="slim" patternSyntax="Wildcard">
                    <match url="*" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

我应该怎样做才能在 IIS 上获得正确的 JSON 响应,而不是 /index.php 内容?

修改

IIS管理器中的

连接|处理程序映射我有

PHP53_via FastCGI作为* .php,启用,文件或文件夹的名称,FastCgiModule

PHP55_via FastCGI作为* .php,启用,文件或文件夹的名称,FastCgiModule

如果我的通话类型是/ api / v1 / login - 我该如何配置?

==修改

this之后我从api收到错误500,这意味着可能是url重写有效。

0 个答案:

没有答案