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

Laravel+Filament部署到cPanel后/admin路由404问题求助

解决Laravel+Filament部署到cPanel后/admin路由404的问题

以下是排查和解决的关键步骤:

1. 确认cPanel文档根目录配置

cPanel默认将public_html设为网站根目录,但Laravel需要把public目录作为文档根:

  • 登录cPanel,找到「域名」或「网站」管理模块
  • 编辑你的域名,将文档根目录修改为public_html/public(如果Laravel项目直接放在public_html下)
  • 保存配置后刷新网站测试

2. 重置路由缓存

部署后本地的路由缓存可能和服务器环境不匹配,执行以下命令(在cPanel终端或SSH中,切换到项目根目录):

php artisan route:clear
php artisan route:cache

3. 检查Filament路由配置

确认Filament的路由前缀是否为admin:

  • 打开项目根目录下的config/filament.php
  • 查找path配置项,确保值为'admin'
  • 如果修改了配置,记得执行php artisan config:cache生效

4. 修复public目录的.htaccess文件

确保public/.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>

同时确认主机商已启用mod_rewrite模块(cPanel通常默认开启,若未开联系主机商)

5. 清除应用缓存与配置缓存

执行以下命令确保.env配置正确加载:

php artisan cache:clear
php artisan config:clear
php artisan config:cache

6. 修复文件权限

确保storage和bootstrap/cache目录权限正确,避免Laravel无法写入缓存:

chmod -R 755 storage bootstrap/cache
chown -R 你的cPanel用户名:你的cPanel用户名 storage bootstrap/cache

替换命令中的「你的cPanel用户名」为实际用户名

7. 重新安装Filament依赖

若部署时依赖未完整安装,执行:

composer install --optimize-autoloader --no-dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:22:42