2013-06-04 25 views
13

Właśnie uaktualniłem do Laravel 4 i konfiguruję nowy serwer. Domyślna trasa / działa dobrze, ale każda inna trasa zwraca błąd 404. Podczas próby index.php/route otrzymuję żądane dane, co oznacza, że ​​.htaccess nie działa.Laravel 4 .htaccess Not Przepisywanie adresów URL

Tak, AllowOverride is set to ALL.
Tak, I enabled the mod_rewrite module.

Próbowałem następujące 3 .htaccess kombinacje:

<IfModule mod_rewrite.c> 
    Options -MultiViews 
    RewriteEngine On 

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

oraz:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

oraz:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

, a po ponownym uruchomieniu serwera, i tak dalej, żaden z nich nie działa i nadal zwracam błąd 404.

Uwaga: używam kilku domen z tą samą instalacją w języku Laravel, więc moje foldery publiczne to public/site1, public/site2, public/site3. Jednak przekierowuję publiczne ścieżki do tych folderów, więc nie jestem pewien, czy to byłby problem.

Jakieś myśli?

+0

Jaki jest twój serwer? xAMP, Apache? Czy załadowałeś moduł przepisywania? Sprawdź tę linię w twoim httpd.conf: 'LoadModule rewrite_module modules/mod_rewrite.so' –

+0

@AlexandreButynski Apache. Tak, załadowałem moduł przepisywania. Oświadczyłem, że powyżej. A AllowOverride to wszystko. Nie mam pojęcia, co to powoduje. –

Odpowiedz

20

Zapomniałem edytować vhostów w pliku httpd.conf. Derp, derp. Dodano:

<Directory "/var/www/public/site1"> 
    AllowOverride All 
</Directory> 

do każdego z plików vhosta zewnętrznej strony, i to działało pięknie. Derp derp.

Powiązane problemy