2016-05-15 16 views
0

Verwenden von Laravel Framework Version 5.2.31 und Apache/2.4.12 (Ubuntu) Server. Folgende Fehlermeldung wurde angezeigt:Laravel 5.2.31: routing: 404 nicht gefunden Fehlermeldung

404 Nicht gefunden Die angeforderte URL/laravel/public/signup wurde auf diesem Server nicht gefunden.

Vielen Dank für jede Hilfe.

Unten ist routes.php (Diese Datei nicht mehr korrekt ist. Siehe neue unten in Abschnitt bearbeiten)

<?php 

Route::group(['middleware' => ['web']], function() 
{ 
    Route::get('/', function() 
    { 
     return view('welcome'); 
    }); 
    Route::post('/signup', [ 
     'uses' => '[email protected]', 
     'as' => 'signup' 
    ]); 
}); 

unten UserController.php

<?php 

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 

class UserController extends Controller 
{ 
    public function postSignUp(Request $Request) 
    { 
     $email = $request['email']; 
     $prenom = $request['prenom']; 
     $motDePasse = bcrypt($request['motDePasse']); 

     $user = new User(); 
     $user->email = $email; 
     $user->prenom = $prenom; 
     $user->motDePasse = $motDePasse; 

     $user->save(); 

     return redirect()->back(); 
    } 

    public function postSignIn(Request $Request) 
    { 

    } 
} 

bearbeiten

Datei

Unten ist routes.php

<?php 

Route::get('/', function() 
{ 
    return view('welcome'); 
}); 
Route::post('/signup', [ 
    'uses' => '[email protected]', 
    'as' => 'signup' 
]); 

Unten ist RouteServiceProvider.php

<?php 

namespace App\Providers; 

use Illuminate\Routing\Router; 
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 

class RouteServiceProvider extends ServiceProvider 
{ 
    /** 
    * This namespace is applied to your controller routes. 
    * 
    * In addition, it is set as the URL generator's root namespace. 
    * 
    * @var string 
    */ 
    protected $namespace = 'App\Http\Controllers'; 

    /** 
    * Define your route model bindings, pattern filters, etc. 
    * 
    * @param \Illuminate\Routing\Router $router 
    * @return void 
    */ 
    public function boot(Router $router) 
    { 
     // 

     parent::boot($router); 
    } 

    /** 
    * Define the routes for the application. 
    * 
    * @param \Illuminate\Routing\Router $router 
    * @return void 
    */ 
    public function map(Router $router) 
    { 
     $this->mapWebRoutes($router); 

     // 
    } 

    /** 
    * Define the "web" routes for the application. 
    * 
    * These routes all receive session state, CSRF protection, etc. 
    * 
    * @param \Illuminate\Routing\Router $router 
    * @return void 
    */ 
    protected function mapWebRoutes(Router $router) 
    { 
     $router->group([ 
      'namespace' => $this->namespace, 'middleware' => 'web', 
     ], function ($router) { 
      require app_path('Http/routes.php'); 
     }); 
    } 
} 

Antwort

1

Erstens, es ist wie Sie in routes.php verwenden post Methode scheint, aber Sie versuchen, die Route mit get Methode zu laden.

Zweitens haben Sie falsche Webserver-Konfiguration. Web-Server should be pointed to a public directory von Ihnen Laravel-Projekt (Sie sollten VirtualHost dafür erstellen und den Webserver neu starten).

Entfernen Sie auch web Middleware von routes.php, becuase it will cause errors.

+0

Ich habe die Datei 'route.php' nach den von Ihnen angegebenen Links bearbeitet. Ich habe die Datei 'RouteServiceProvider.php' auf meinem Server überprüft; Sein Inhalt ist der gleiche wie der hier [link] https: // github.com/laravel/laravel/commit/5c30c98db96459b4cc878d085490e4677b0b67ed # diff-b467cc786635bd6945b17726282f1c64 [/ link] Die Fehlermeldung '404 Seite nicht gefunden' zeigt noch. – user5293879

+0

Hast du zwei andere Dinge aus meiner Antwort gemacht? –

0

hinzufügen Zu der .htaccess

RewriteEngine On 
RewriteRule ^(.*)$ public/$1 [L] 

und Wege für ändern:

offen local/Bootstrap/paths.php

'public' => __DIR__.'/../public', to 'public' => __DIR__.'/../../', 

offen local/Bootstrap/paths.php und finden Sie unter Code

'öffentlich' =>DIR. '/ ../public', Änderung mit folgendem Code

'public' =>DIR. '/ ../.. /',

Open index.php (on root) and find below code 

require __DIR__.'/../bootstrap/autoload.php'; 
$app = require_once __DIR__.'/../bootstrap/start.php'; 

Änderung mit folgendem Code

Jetzt haben Sie alle gesetzt können Sie auf URL http://example.com/ zugreifen, wenn immer noch Problem mit Clear Cache des Browsers versuchen.

+0

Ich benutze Apache/2.4.12. Diese Zeile ist bereits unkommentiert in '/ etc/apache2/mods-enabled' als' LoadModule rewrite_module/usr/lib/apache2/modules/mod_rewrite.so' – user5293879

+0

Ich aktualisiere meine Lösung. Sehen Sie, ob es funktioniert. –