【问题标题】:Laravel 5 - Routes error: NotFoundHttpExceptionLaravel 5 - 路由错误:NotFoundHttpException
【发布时间】:2016-01-19 19:04:27
【问题描述】:

类似于未解决的 WAMP, Laravel 5: Routes not working - NotFoundHttpException

我正在尝试使用 Laravel,但路线根本不起作用(除了 '/')。

在 Windows 7 上使用 WAMP,我已经做了以下尝试来纠正这种情况;

启用 rewrite_module

我的 .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]
</IfModule>

我的路线.php:

<?php

Route::get('contact', 'PagesController@contact');

Route::get('/', function () {
    return view('welcome');
});


Route::group(['middleware' => ['web']], function () {
    //
});

我的 PagesController.php:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class PagesController extends Controller
{
    //
    public function contact()
    {
        return 'Test Contact';
    }
}

当我转到别名 http://localhost/laravel.dev/ 时,它会显示登录页面,但当我导航到 http://localhost/laravel.dev/contact 时,它会返回:

NotFoundHttpException in RouteCollection.php line 161:
in RouteCollection.php line 161
at RouteCollection->match(object(Request)) in Router.php line 802
at Router->findRoute(object(Request)) in Router.php line 670
at Router->dispatchToRoute(object(Request)) in Router.php line 654
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 54

任何帮助都将不胜感激,因为我已经阅读并尝试了几天的解决方案。

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    你可以试试这个.htaccess:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    
        RewriteEngine On
        RewriteBase /laravel.dev/
    
        # 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]
    </IfModule>
    

    【讨论】:

    • 很高兴我能帮上忙。编码快乐!
    • 我的地方也有同样的问题,但是这个 htaccess 文件对我不起作用。我所有的自定义路由都在工作,但不是我目前尝试实现的路由 - 我所做的一切都完全按照我以前的方式进行......但我只收到 NotFoundHttpException - 它会是什么?我已经搜索了 2 天了...
    猜你喜欢
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2017-08-10
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多