我有一个我已经构建并在IIS服务器上运行的API。我的web.config文件如下:
<?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>
值得注意的是,我的结构如下:
wwwroot/
-web.config
-api/
--vendor
--src/
---index.php
我可以访问API并在我的本地服务器上进行调用,我的整个API都按预期运行......问题是我无法从网络上的其他计算机访问。错误消息是无法访问/拒绝连接站点。我已经尝试将web.config文件复制到每个目录,以确保它不是文件所在位置的问题。我还创建了一个虚拟的“hello world”php脚本并将其放在服务器上以确保远程机器具有访问权限,这样就可以了。 (使用http://myservername/helloworld.php访问)似乎我可以远程访问我放在Web服务器上的任何内容,除了我的瘦API路径。是否需要在SLIM或IIS中设置一些配置才能使其正常工作?
答案 0 :(得分:0)
错误消息是无法访问/拒绝连接网站
你的规则似乎很好。如果你的规则是错误的,理想情况下应该得到404 错误而不是&#34;网站无法联系/拒绝连接&#34; 。这个错误 表示请求无法仅访问服务器。
您的应用程序中可能有重定向(例如https),或者您使用错误的主机名从其他计算机访问该网站。请检查以下
验证IIS中的绑定,以确保您在所有未分配的IP地址或服务器的IpAddress上列出内容。例如第一次绑定
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
<binding protocol="https" bindingInformation="*:443:" />
<binding protocol="http" bindingInformation="*:80:hostname" />
</bindings>
如果您在IPAddress中有*或空白主机名,则可以使用http://servername或http://ipaddress从其他计算机访问该网站。
希望这有帮助!