Slim Framework只能在本地服务器上工作
我有一个我已经构建并在IIS服务器上运行的API。我的web.config文件如下:Slim Framework只能在本地服务器上工作
<?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中设置一些配置才能使其工作?
该错误消息是该网站不能达到/拒绝连接
您的规则似乎罚款。如果你的规则是错误的,你应该得到404 错误,而不是“站点无法到达/拒绝连接”。此错误 表示请求无法到达服务器。
您可能在应用程序中有重定向(例如https),或者您使用不正确的主机名从其他机器访问网站。请检查下面
-
验证在IIS中的结合,以确保你在所有未分配的IP地址或服务器的Ip地址listneing。例如首先结合
<bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="https" bindingInformation="*:443:" />
<binding protocol="http" bindingInformation="*:80:hostname" /> </bindings> 如果你在ip地址或空白主机名*,您可以访问使用http://servername或http://ipaddress从其他机器的网站。
- 如果您有给定的主机名,则只能使用主机名来访问该主机名,而该主机名可能会或可能不会在不同的机器上工作。
- 如果绑定正常,现在从IE开发人员工具栏或chrome中捕获网络跟踪,并确认您得到的响应是什么。
希望这有助于!