Laravel站点需添加/public/才能访问的IIS环境配置问题求助
Laravel子目录部署(IIS 10)访问问题解决方向
核心调整步骤
移动/创建正确的web.config文件
将Laravelpublic文件夹内的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
相关产品推荐
相关产品推荐

