我正在尝试启用IIS 10以允许PHP中的自定义谓词。我已经启用了PHP_via_FastCGI,可以接受所有动词。当我指定完整的路径(包括最后的index.php )时,这是正确的。
问题是当我没有在URL端点中指定index.php时。在这种情况下,似乎由StaticFile处理程序接管,我得到了引用StaticFile处理程序的以下错误:
HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.
StaticFile处理程序也被设置为允许所有谓词。
还值得注意的是,在我的调查期间,除了PHP_via_FastCGI和StaticFile之外,我还删除了站点的所有其他处理程序,用于任何引用*路径的操作。WebDav也未安装。我的Web.config基本上是空白的。我拥有对服务器的完全管理员访问权限。
是否有另一种方法来配置PHP_via_FastCGI处理程序以处理默认文档,从而删除StaticFile处理程序?或者StaticFile中是否有我缺少的配置?
谢谢你的帮忙!
发布于 2017-12-15 20:14:41
我不确定这是否是最好的方法,但是我已经通过在StaticFile中禁用Web.config处理程序和添加一个Web.config重写规则来解决这个问题。乍一看,这似乎是可行的。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<handlers>
<remove name="StaticFile"/>
</handlers>
<rewrite>
<rules>
<rule name="Lang-Redirect">
<match url="(.*)$" />
<action type="Rewrite" url="{R:1}/index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
https://serverfault.com/questions/888325
复制相似问题