Laravel部署Apache时路由冲突:public下子路由访问遇404错误
解决方案:Laravel Apache环境下路由404问题
1. 启用Apache重写模块
执行以下命令开启mod_rewrite模块:
sudo a2enmod rewrite
重启Apache使配置生效:
sudo systemctl restart apache2
2. 配置Apache目录权限与重写规则
方式一:修改站点配置文件
编辑默认站点配置文件(路径通常为/etc/apache2/sites-available/000-default.conf),在<VirtualHost *:80>区块内添加以下配置:
<Directory /var/www/html/infoalq/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
保存文件后重启Apache:
sudo systemctl restart apache2
方式二:确保.htaccess文件正常工作
确认Laravel项目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>
若文件缺失,直接创建并粘贴上述内容,同时设置正确的目录权限:
sudo chown -R www-data:www-data /var/www/html/infoalq sudo chmod -R 755 /var/www/html/infoalq
3. 验证修复效果
完成上述配置后,访问http://localhost/infoalq/public/principal即可正常加载对应路由页面。
内容的提问来源于stack exchange,提问作者Leandro Caplan
相关产品推荐
相关产品推荐

