89 votes

Mes routes renvoient un 404, comment puis-je les réparer ?

Je viens de commencer à apprendre le framework Laravel et j'ai un problème avec le routage.

La seule route qui fonctionne est la route d'accueil par défaut qui est attachée à Laravel par défaut.

J'utilise WAMP sous Windows, PHP 5.4.3 et Apache 2.2.22. J'ai également activé mod_rewrite et j'ai supprimé le fichier 'index.php' du fichier de configuration application.php pour laisser une chaîne vide.

J'ai créé un nouveau contrôleur appelé Utilisateur :

class User_Controller extends Base_Controller {

    public $restful = true;

    public function get_index() 
    {
        return View::make('user.index');
    }
}

J'ai créé un fichier de vue dans application/views/user/ appelé index.php avec un code HTML de base, et dans routes.php j'ai ajouté ce qui suit :

Route::get('/', function () {
    return View::make('home.index');
});

Route::get('user', function () {
    return View::make('user.index');
});

La première route fonctionne bien lorsqu'on visite la racine ( http://localhost/mysite/public ) dans mon navigateur web, mais lorsque j'essaie d'accéder à ma seconde route avec http://localhost/mysite/public/user Je reçois une erreur 404 Not Found. Pourquoi cela se produit-il ?

0voto

dajavax Points 326

Essayez d'activer les balises php courtes dans votre php.ini. Le WAMP les désactive généralement et Laravel les active.

0voto

athula Points 31
Route::get('/', function()
{
return View::make('home.index');
});

Route::get('user', function()
{
return View::make('user.index');
});

changer ci-dessus en

Route::get('user', function()
{
return View::make('user.index');
});

Route::get('/', function()
{
return View::make('home.index');
});

Vous devez utiliser '/' (home/default) à la fin dans vos routes.

0voto

Rohan Kalra Points 1

Vous devez utiliser Laravel 5 la commande

  class User_Controller extends Controller {
  public $restful = true;
  public function get_index(){
  return View('user.index');
  }
  }

et dans routes.php

  Route::get('/', function()
  {
  return view('home.index');
  });

  Route::get('user', function()
  {
  return view('user.index');
  });

Laravel 5 changements de commande pour la vue et le contrôleur voir la documentation j'avais la même erreur auparavant

0voto

Bakhtawar GIll Points 129

Il suffit d'exécuter dans votre terminal.

 composer dump-autoload

0voto

Pramod yadav Points 1

Le problème principal de la route qui ne fonctionne pas est qu'il y a le module mod_rewrite.so dans macos, linux qui n'est pas activé dans le fichier httpd.conf de la configuration d'apache, donc .htaccess peut fonctionner. J'ai résolu ce problème en décommentant la ligne :

# LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Retirer le # de la ligne supérieure de httpdf.conf . Alors cela fonctionnera.
Profitez-en !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X