2013-08-28 10 views
12

Ich bin Anfänger bei Lavarel Framework. Ich kenne MVC-Struktur, seit ich es zuvor in ASP.net verwendet habe, aber Laravel ist ziemlich verwirrend für mich.Neu im Laravel PHP Framework. Andere Routen als "/" funktionieren nicht

Ich habe Laravel innen photozoom Verzeichnis installiert:

composer create-project laravel/laravel photozoom --prefer-dist 

Hier ist mein app/routes.php:

<?php 

Route::get('/', function() 
{ 
    return View::make('hello'); 
}); 

Route::get('users', function() 
{ 
    return 'users route is working!'; 
}); 

Wenn ich http://localhost/photozoom/public/users laufen, ich 404 Not Found Fehler. Wenn ich http://localhost/photozoom/public/ versuche, wird die Route für / aufgerufen und die entsprechende Ansicht aufgerufen.

Ich habe sogar versucht, eine Sicht für die users Route zu erstellen. Verwenden der Laravel-Dokumentation. Ich habe zwei Dateien erstellt:

layout.blade.php:

<html> 
    <head> 
     <title>Laravel Quickstart</title> 
    </head> 
    <body> 
     <h1>Laravel Quickstart</h1> 

     @yield('content') 
    </body> 
</html> 

users.blade.php:

@extends('layout') 

@section('content') 
    Users!!! 
@stop 

Aber noch, wenn ich http://localhost/photozoom/public/users nenne ich bekommen 404 Not Found error.

Hier ist meine public/.htaccess Datei:

<IfModule mod_rewrite.c> 
    Options -MultiViews 
    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule> 

Ich bin mit PHP 5.5, Apache 2.4.6.

Jede Hilfe wäre willkommen.


GELÖST Nach mod_rewrite ermöglicht hatte ich AllowOverride zu aktivieren.

+0

Was ist in Ihrem '.htaccess'? Hast du mod_rewrite aktiviert? – Maerlyn

+3

Was meinen Sie mit "Nachdem ich mod_rewrite aktiviert hatte, musste ich AllowOverride ebenfalls aktivieren." ? Kannst du ins Detail gehen? – Sliq

Antwort

19

Versuchen Sie http://localhost/photozoom/public/index.php/users für jetzt. Aktivieren Sie dann pretty URLs.

+0

Hmm, Hinzufügen von 'index.php' löste es. Aber wie kann ich hübsche URLs aktivieren? Ich habe 'mod_rewrite' aktiviert. Aber nicht gut. Ich werde meine '.htacces' in der Frage hinzufügen. –

+1

Ich bin froh, dass Sie es lösen konnten. – Franz

7

Die .htaccess-Datei im Verzeichnis/public ermöglicht hübsche URLs. Damit die .htaccess-Datei ihre Arbeit zu tun:

  • Apache2 mod_rewrite aktiviert haben müssen (a2enmod Rewrite)
  • In der Apache-Konfiguration müssen Sie die AllowOverride Option erlauben die .htaccess-Datei verwenden ' überschreiben 'Ihre Standard Apache2 Konfiguration.

Zum Beispiel:

<Directory /var/www/photozoom/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 
0

Es gibt zwei AllowOverride in der Datei httpd.conf.

<Directory /> 
    AllowOverride All 
    Require all denied 
</Directory> 

und

DocumentRoot "D:/www" 
<Directory "D:/www"> 
    AllowOverride All 
    Require all granted 
</Directory> 
0

, wenn Sie Windows laufen sind 10 dann brauchen Sie nur eine Sache einfach wie genug zu tun.

Erstellen Sie einen neuen Ordner in c:/wamp64/www/und Kopieren Sie Ihre All-Datei aus Laravel-Ordner und fügen Sie in den Ordner, den Sie gerade erstellt, das ist meine Lösung.

Verwandte Themen