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

Hostinger共享主机Laravel项目隐藏public路径的.htaccess配置问题

Hostinger共享主机部署Laravel隐藏public路径解决方法

你的当前文件结构:

Public_html/
    Test/
        Public/
            .htaccess
            Index.html

要实现https://example.com/test指向test/Public且隐藏URL中的Public,按以下步骤操作:

一、放置正确的.htaccess文件

将自定义.htaccess放在Public_html/Test/目录下(与Public文件夹同级,不要放入Public内部),替换为以下规则:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # 跳过已存在的文件/目录,避免静态资源被错误重写
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # 注意此处Public为大写,与你的文件夹名称保持完全一致
    RewriteRule ^(.*)$ Public/$1 [L]
</IfModule>

二、修复Public文件夹内的.htaccess

Laravel项目的Public文件夹需要保留框架默认重写规则,替换掉当前的内容:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # 处理授权请求头
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # 移除URL末尾的斜杠
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # 所有请求转向Laravel入口文件
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

三、额外检查项

  • Hostinger共享主机默认开启mod_rewrite,若规则仍不生效,可联系客服确认模块状态
  • 文件夹权限设置为755,文件权限设置为644,避免权限拦截
  • Linux主机区分大小写,确保规则中的Public与实际文件夹名大小写完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:42:11