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的主要内容,如果未能解决你的问题,请参考以下文章