Laravel嵌入遗留站点:Apache配置导致路由404问题求助
解决Apache下嵌入Laravel站点的路由404问题
问题分析
你在将Laravel嵌入遗留站点时,Valet通过自定义Driver能正常处理/laravel开头的请求,但Apache配置下访问/laravel/admin这类路由出现Laravel风格404,核心问题在于Apache的Alias与Directory路径不匹配,以及Rewrite规则的传递逻辑未正确适配Alias映射。
修复步骤
1. 修正Apache虚拟主机的Directory路径错误
你的虚拟主机配置中,Alias /laravel指向的是/var/www/xxxx/dev/laravel/public,但对应的Directory块却写了/var/www/xxxx/laravel/public(缺少dev目录),这会导致Apache无法正确应用该目录下的Rewrite规则。修改如下:
# 替换原错误的Directory块 <Directory /var/www/xxxx/dev/laravel/public> AllowOverride All Options -MultiViews -Indexes SSLRequireSSL </Directory>
2. 调整Laravel public目录的.htaccess规则
原.htaccess的Rewrite规则在Alias映射场景下,需要确保请求URI完整传递给Laravel的前端控制器。修改RewriteRule行,同时保留必要的授权头处理:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On RewriteBase /laravel # 处理授权头 RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # 移除末尾斜杠 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # 转发所有非文件/目录请求到index.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
3. 配置Laravel的APP_URL
在Laravel项目的.env文件中,设置正确的应用URL,确保路由生成和内部跳转正常:
APP_URL=https://your-domain/laravel
4. 清理缓存并重启服务
- 清除Laravel路由和配置缓存:
php artisan route:clear php artisan config:clear - 重启Apache服务:
sudo systemctl restart apache2
替代方案:直接在Apache配置中写入Rewrite规则(更可靠)
如果不想依赖.htaccess,可以直接在虚拟主机的Directory块中配置Rewrite规则,避免AllowOverride的性能开销和潜在问题:
<Directory /var/www/xxxx/dev/laravel/public> AllowOverride None Options -MultiViews -Indexes SSLRequireSSL RewriteEngine On RewriteBase /laravel # 处理授权头 RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # 移除末尾斜杠 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] </Directory>
内容的提问来源于stack exchange,提问作者Stefano Finetti
相关产品推荐
相关产品推荐

