Laravel 路由错误 404
Posted
技术标签:
【中文标题】Laravel 路由错误 404【英文标题】:Laravel routing error 404 【发布时间】:2018-01-15 22:17:50 【问题描述】:在我的 laravel 项目中,路由无法正常工作。当我转到 /exchange 时,我收到错误 404。重定向效果很好。
<?php
Route::group(['middleware' => ['web']], function ()
Route::get('/', function()
return redirect('exchange');
);
Route::get('exchange', function()
return view('exchange');
);
Route::get('tos', function()
return view('tos');
);
Route::get('contact', function()
return view('contact');
);
Route::controller('admin', 'AdminController');
);
还有我的 .htaccess 文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %HTTP:Authorization .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
</IfModule>
我必须做什么来修复我的项目?
【问题讨论】:
其他路线都在工作??? 不,总是 404 你用的是哪个 laravel 版本? 这不是我的项目,有人在 2016 年 6 月写了这个 请在 Route::group 之外创建交换路由并检查 【参考方案1】:你必须添加:-
AllowOverride All 到 etc/apache2 apache2.conf 文件
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
它将处理路由错误。
【讨论】:
【参考方案2】:你在 Apache 中遗漏了一个重要的指令
AllowOverride All
在 httpd.conf 文件中定义它,以便服务器支持您的 .htaccess
和 URL 重写。
爆破它,允许所有类型的覆盖。
<Directory "PATH_TO_PROJECT">
AllowOverride All
</Directory>
使其工作的最低限度。只允许修改文档类型和重写的覆盖。
<Directory "PATH_TO_PROJECT">
AllowOverride FileInfo
</Directory>
【讨论】:
我在我的 apache2.conf 中添加了这个。重新启动后,当我进入站点时,出现内部服务器错误。 检查日志以获取确切的错误消息。 500 Internal Server Error 太笼统了。此外,路径必须指向 Laravel 项目的/public
文件夹,其中包含 index.php
引导程序和 Laravel .htaccess
以上是关于Laravel 路由错误 404的主要内容,如果未能解决你的问题,请参考以下文章