You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Laravel项目时显示IIS默认页面的原因及解决方法

问题原因及解决办法

可能原因

  • IIS默认站点的物理路径未指向Laravel项目的public目录
  • 未配置URL重写规则,Laravel依赖该规则处理路由请求
  • IIS应用池对项目目录无读写权限
  • 站点绑定设置冲突(如端口、主机头被其他站点占用)

解决步骤

1. 修正站点物理路径

打开IIS管理器,找到默认站点:

  • 右键站点 → 管理网站 → 高级设置
  • 将物理路径修改为你的Laravel项目下的public文件夹路径(例如C:\laravel-project\public)
  • 保存设置后重启站点

2. 配置URL重写规则

Laravel需要URL重写让所有请求指向public/index.php:

  • 确保已安装IIS的URL重写模块(可通过Web平台安装器下载)
  • 在项目public目录下创建web.config文件,写入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Laravel" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
        <defaultDocument>
            <files>
                <clear />
                <add value="index.php" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

3. 设置目录权限

  • 右键Laravel项目根目录 → 属性 → 安全
  • 添加IIS应用池对应的用户(通常为IIS_IUSRS或AppPool\{你的应用池名称})
  • 为该用户分配读取和写入权限,应用后重启IIS

4. 检查站点绑定

  • 确认默认站点绑定的端口(通常为80)未被其他站点占用
  • 若有冲突,可创建新站点,绑定对应端口,物理路径指向项目public目录

附用户提供的相关截图

  • 访问时显示的IIS默认页面:IIS默认首页
  • 项目文件路径:项目文件夹结构

内容的提问来源于stack exchange,提问作者Fabrizio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:55:54