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

部署在AWS上的Laravel应用除首页外路由无法访问的解决方案

解决AWS上Laravel非首页路由404的问题

1. 确认mod_rewrite模块已启用

AWS默认Apache环境可能未开启rewrite模块,执行以下命令启用并重启服务:

sudo a2enmod rewrite
sudo systemctl restart apache2

2. 修正Laravel部署路径配置

大部分此类问题源于未将Laravel的public目录设为Apache根目录:

  • 将完整Laravel项目放置在非网页根目录,比如/var/www/laravel-app
  • 打开Apache虚拟主机配置文件(通常是/etc/apache2/sites-enabled/000-default.conf),修改DocumentRoot指向项目的public文件夹,并配置目录权限:
<VirtualHost *:80>
    ServerName your-domain.com
    DocumentRoot /var/www/laravel-app/public

    <Directory /var/www/laravel-app/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

修改完成后重启Apache:

sudo systemctl restart apache2

3. 调整.htaccess规则(可选)

如果上述步骤无效,尝试修改public/.htaccess中的最终路由转发规则:
将原规则:

RewriteRule ^ index.php [L]

替换为:

RewriteRule ^(.*)$ index.php/$1 [L]

或者适配Apache 2.4+的写法:

RewriteRule ^ index.php [L,QSA]

4. 清除Laravel缓存

部署新环境后需清除路由和配置缓存,避免旧缓存导致路由失效:

cd /var/www/laravel-app
php artisan route:clear
php artisan config:clear

5. 修复文件权限

确保Laravel的核心读写目录拥有Apache进程可访问的权限:

sudo chown -R www-data:www-data /var/www/laravel-app/storage
sudo chown -R www-data:www-data /var/www/laravel-app/bootstrap/cache
sudo chmod -R 755 /var/www/laravel-app/storage
sudo chmod -R 755 /var/www/laravel-app/bootstrap/cache

内容的提问来源于stack exchange,提问作者Khandokar Nafis Jaman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:01:57