我正在尝试将nginx重写规则转换为IIS7上的web.config。
nginx:
location /api {
try_files $uri $uri/ /api/index.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $fastcgi_script_name =404;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi_params;
}
到目前为止,我仅设法转换了第一位,但是我不知道如何执行第二位。有点用,但是我不知道
的最后一条规则是什么 <rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="api" 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="api/index.php" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="/*" 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="index.php" />
</rule>
</rules>
</rewrite>
您的最后一条规则是使用Nginx进行PHP快速CGI设置。
在iis中,您可以通过以下链接配置PHP快速CGI:
如果您不想手动配置此功能,则可以直接启用iis CGI功能。
下载Web平台安装程序。
https://www.microsoft.com/web/downloads/platform.aspx