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

Laravel共享主机项目:如何通过public_html实现文件直接访问?

共享主机Laravel项目中直接访问public_html下静态文件的解决方案
  • 正确放置文件
    直接将test.txt上传到共享主机的public_html目录即可,无需为静态文件创建Laravel路由——路由是处理应用动态请求的,静态文件直接放在public根目录(即共享主机的public_html)就能被直接访问。

  • 恢复正确的.htaccess配置
    确保public_html下的.htaccess使用Laravel默认配置,这是保证静态文件能被直接访问的关键,配置内容如下:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
    
        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.+)/$
        RewriteRule ^ %1 [L,R=301]
    
        # Send Requests To Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>
    

    其中RewriteCond %{REQUEST_FILENAME} !-f规则会让服务器优先返回已存在的静态文件,不会将请求转发到Laravel的index.php。

  • 排查常见问题

    • 检查test.txt的文件权限,设置为644(所有者可读可写,组和其他用户可读),避免权限不足导致访问被拒绝。
    • 用浏览器隐私模式访问myproject.com/test.txt,排除缓存干扰。
    • 确认主机商已开启Apache的mod_rewrite模块,该模块是URL重写功能的基础,若未开启需联系主机商处理。
    • 删除之前创建的/test.txt相关路由,避免路由规则覆盖静态文件的访问逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:41:56