2013-06-04 17 views
13

Quindi ho appena effettuato l'aggiornamento a Laravel 4 e sto impostando le cose su un nuovo server. La route predefinita / funziona correttamente, ma ogni altra route restituisce un errore 404. Quando provo index.php/route, ottengo i dati richiesti, quindi significa che .htaccess non funziona.Laravel 4 .htaccess Non riscrittura degli URL

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

ho provato i seguenti 3 combinazioni: .htaccess

<IfModule mod_rewrite.c> 
    Options -MultiViews 
    RewriteEngine On 

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

e:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

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

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

e:

Options +FollowSymLinks 
RewriteEngine On 

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

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

E, dopo un riavvio del server, e così via, nessuno di loro funziona, e sto ancora restituendo un errore 404.

Nota: Sto utilizzando diversi domini con la stessa installazione di laravel, quindi le mie cartelle pubbliche sono public/site1, public/site2, public/site3. Tuttavia, sto indirizzando i percorsi pubblici a queste cartelle, quindi non sono sicuro che sarebbe il problema.

Qualche idea?

+0

Qual è il tuo server? xAMP, Apache? Hai caricato il modulo di riscrittura? Controlla questa riga nel tuo httpd.conf: 'LoadModule rewrite_module modules/mod_rewrite.so' –

+0

@AlexandreButynski Apache. Sì, ho caricato il modulo di riscrittura. L'ho detto sopra. E AllowOverride è tutto. Non ho idea di cosa lo stia causando. –

risposta

20

Ho dimenticato di modificare i vhosts in httpd.conf. Derp, derp. Aggiunto:

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

a ciascuno dei file vhost del sito, e ha funzionato meravigliosamente. Derp derp.

Problemi correlati