2013-08-28 11 views
12

Jestem początkującym w środowisku Lavarel. Wiem o strukturze MVC, ponieważ używam jej wcześniej w ASP.net, ale używanie Laravel jest dla mnie dość kłopotliwe.Nowość w frameworku PHP Laravel. Trasy inne niż "/" nie działają

mam zainstalowane laravel wewnątrz photozoom katalogu przy użyciu:

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

Oto mój app/routes.php:

<?php 

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

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

http://localhost/photozoom/public/users Kiedy biegnę, mam 404 Not Found błąd.

Ale kiedy próbuję http://localhost/photozoom/public/, wywoływana jest trasa dla / i wywoływany jest odpowiedni widok.

Próbowałem nawet utworzyć widok dla trasy users. Korzystanie z dokumentacji Laravel. Stworzyłem dwa pliki:

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 

ale nadal, gdy zgłoszę http://localhost/photozoom/public/users uzyskać 404 Not Found error.

Oto mój public/.htaccess file:

<IfModule mod_rewrite.c> 
    Options -MultiViews 
    RewriteEngine On 

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

używam PHP 5.5, Apache 2.4.6.

Każda pomoc zostanie doceniona.


SOLVED Po włączeniu mod_rewrite, musiałem włączyć AllowOverride też.

+0

Co jest w twoim '.htaccess'? Czy masz włączony mod_rewrite? – Maerlyn

+3

Co masz na myśli przez "Po włączeniu mod_rewrite, musiałem włączyć AllowOverride też." ? Czy możesz wejść w szczegóły? – Sliq

Odpowiedz

19

Na razie spróbuj http://localhost/photozoom/public/index.php/users. A następnie włącz pretty URLs.

+0

Hmm, dodanie 'index.php' rozwiązało to. Ale jak mogę włączyć ładne adresy URL? Mam włączone "mod_rewrite". Ale nic dobrego. Dodam moje '.htacces' w pytaniu. –

+1

Dobrze, że udało Ci się go rozwiązać. – Franz

7

Plik .htaccess w katalogu/public umożliwia ładowanie adresów URL. Aby pliku .htaccess, aby wykonać swoją pracę:

  • Apache2 musi być włączona obsługa mod_rewrite (a2enmod przepisać)
  • W konfiguracji Apache należy użyć opcji AllowOverride do pozwalają plik .htaccess do ' zastąp "domyślną konfigurację Apache2 .

Na przykład:

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

w pliku httpd.conf Istnieją dwa AllowOverride.

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

i

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

jeśli używasz systemu Windows 10, a następnie po prostu trzeba zrobić jedno proste jak mało.

utwórz nowy folder w języku c:/wamp64/www/i skopiuj wszystkie pliki z folderu laravel i wklej do folderu, który właśnie utworzyłeś, to jest moje rozwiązanie.

Powiązane problemy