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

Laravel 5.8生产环境新增public子目录遇403权限问题求助

解决Laravel 5.8 Public目录新增子目录访问Forbidden问题

1. 修复目录与文件权限

权限错误是这类问题的核心原因,按以下步骤调整:

  • 将新增子目录权限设为755,目录内文件权限设为644(适配Web服务器运行用户,如www-data):
    chmod -R 755 /path/to/laravel/public/your-new-dir
    chmod -R 644 /path/to/laravel/public/your-new-dir/*
    
  • 确保目录所属用户与Web服务器一致:
    chown -R www-data:www-data /path/to/laravel/public/your-new-dir
    

2. 调整.htaccess的目录索引限制

当前.htaccess中Options -MultiViews -Indexes的-Indexes会禁止目录索引(访问目录时不显示文件列表),如果子目录没有默认索引文件(如index.php、index.html),就会返回Forbidden:

  • 若需要允许目录索引,修改该行:
    Options -MultiViews +Indexes
    
  • 或在子目录内添加默认索引文件,无需修改.htaccess即可正常访问

3. 验证Rewrite规则与路径正确性

当前Rewrite规则已通过RewriteCond %{REQUEST_FILENAME} !-d排除了真实存在的目录,一般不会拦截,但需确认:

  • 新增子目录确实位于public目录下,访问路径无拼写错误
  • 测试直接访问子目录内的具体文件(如http://your-domain/your-new-dir/test.html),若能访问则是目录索引问题;若仍报错,优先排查权限

4. 检查Apache全局配置

若以上步骤无效,需确认Apache站点配置:

  • 确保public目录对应的Directory块设置了AllowOverride All,保证.htaccess规则生效
  • 排查是否存在Deny from all等全局规则限制子目录访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:27:28