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

Laravel站点需添加/public/才能访问的IIS环境配置问题求助

Laravel子目录部署(IIS 10)访问问题解决方向

核心调整步骤

  • 移动/创建正确的web.config文件
    将Laravel public 文件夹内的web.config复制到Website3根目录(即example.com/Website3对应服务器路径)。如果没有默认文件,手动创建以下内容的web.config,重点适配子目录重写规则:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="Laravel Subdirectory Rewrite" stopProcessing="true">
                        <match url="^(.*)$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll">
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="public/{R:1}" appendQueryString="true" />
                    </rule>
                </rules>
            </rewrite>
            <directoryBrowse enabled="false" />
        </system.webServer>
    </configuration>
    

    注:directoryBrowse enabled="false"会直接关闭文件列表浏览功能,避免暴露目录结构。

  • 确认URL重写模块已安装
    打开IIS管理器,查看站点的「模块」列表,确保存在URL Rewrite模块。若缺失,通过服务器管理器的「添加角色和功能」,在Web服务器角色下勾选安装该模块。

  • 修正Laravel配置
    编辑Laravel根目录的.env文件,将APP_URL设置为http://example.com/Website3,保证框架生成的内部链接路径正确。

  • 验证文件权限
    确保IIS应用程序池对应的用户,对Laravel的storage和bootstrap/cache文件夹拥有读写权限,避免后续运行时出现权限错误。

  • 重启应用池测试
    在IIS管理器中重启Website3对应的应用程序池,之后直接访问example.com/Website3即可验证是否正常跳转至Laravel站点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:37:04