在 IIS 中 运行 slim 时找不到页面
page not found when run slim in IIS
我正在尝试 运行 在 IIS 中精简应用程序,我将其添加为默认网站中的应用程序,我已从 .htaccess
导入规则并将物理地址更新为 public
, 但我仍然找不到页面
需要注意的是,当我将其添加为网站(而不是默认网站)时,它可以正常工作!但是我需要在默认网站中 运行 它才能通过网络使用 public IP 访问它。
这里是 web.config 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<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" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
非常感谢任何建议!
如果想不加端口直接使用公网IP地址(即使用80端口),修改默认网站的端口不使用80,为新网站添加80端口绑定。
详情可参考以下步骤:
1.Open IIS 管理控制台,右键单击默认网站并单击编辑绑定。
2.Select80端口绑定修改为其他端口
3.Open另一个web应用,并为其添加80端口绑定。
错误背后的原因是由之前添加的额外设置引起的,这些设置是为了在 dependencies.php
文件
中的 Apache 服务器中运行 slim 应用程序
$container['environment'] = function () {
// Fix the Slim 3 subdirectory issue (#1529)
// This fix makes it possible to run the app from localhost/slim3-app
$scriptName = $_SERVER['SCRIPT_NAME'];
$_SERVER['REAL_SCRIPT_NAME'] = $scriptName;
$_SERVER['SCRIPT_NAME'] = dirname(dirname($scriptName)) . '/' . basename($scriptName);
return new Slim\Http\Environment($_SERVER);
};
通过删除它并检查项目权限,我让它工作了!
我正在尝试 运行 在 IIS 中精简应用程序,我将其添加为默认网站中的应用程序,我已从 .htaccess
导入规则并将物理地址更新为 public
, 但我仍然找不到页面
需要注意的是,当我将其添加为网站(而不是默认网站)时,它可以正常工作!但是我需要在默认网站中 运行 它才能通过网络使用 public IP 访问它。
这里是 web.config 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<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" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
非常感谢任何建议!
如果想不加端口直接使用公网IP地址(即使用80端口),修改默认网站的端口不使用80,为新网站添加80端口绑定。
详情可参考以下步骤:
1.Open IIS 管理控制台,右键单击默认网站并单击编辑绑定。
2.Select80端口绑定修改为其他端口
3.Open另一个web应用,并为其添加80端口绑定。
错误背后的原因是由之前添加的额外设置引起的,这些设置是为了在 dependencies.php
文件
$container['environment'] = function () {
// Fix the Slim 3 subdirectory issue (#1529)
// This fix makes it possible to run the app from localhost/slim3-app
$scriptName = $_SERVER['SCRIPT_NAME'];
$_SERVER['REAL_SCRIPT_NAME'] = $scriptName;
$_SERVER['SCRIPT_NAME'] = dirname(dirname($scriptName)) . '/' . basename($scriptName);
return new Slim\Http\Environment($_SERVER);
};
通过删除它并检查项目权限,我让它工作了!