2013-04-11 12 views
10

Sto provando a impostare un sito dal vivo. Il sito funziona perfettamente su un server di sviluppo live che abbiamo utilizzato per mostrare il sito al client. Ecco l'.htaccess dal dev dal vivo (funziona bene):Numero Laravel htaccess

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 

    #RewriteCond %{HTTPS} !=on 
    #RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
    #RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

    # Rewrite to 'public' folder 
    RewriteCond %{HTTP_HOST} ^livedev.domain.com$ 
    RewriteCond %{REQUEST_URI} !public/ 
    RewriteRule (.*) public/$1 [L] 
</IfModule> 
AuthType Basic 
AuthName "dev16" 
AuthUserFile "/home/site/.htpasswds/public_html/passwd" 
require valid-user 

Ed ecco il .htaccess dal sito live:

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 

    #RewriteCond %{HTTPS} !=on 
    #RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
    #RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

    # Rewrite to 'public' folder 
    RewriteCond %{HTTP_HOST} ^livesite.co.uk$ 
    RewriteCond %{REQUEST_URI} !public/ 
    RewriteRule (.*) public/$1 [L] 
</IfModule> 

Il 2 sono identiche tranne che per il HTTP_HOST e la rimozione del autenticazione.

Mi dà un generico "Errore interno del server".

Ho provato a eliminare il contenuto di .htaccess che mi dà solo una pagina non trovata, quindi il problema risiede sicuramente in .htaccess.

Un totale .htaccess vergine, quali passi posso intraprendere per trovare la causa del problema?

Grazie

(E 'laravel 3.2.13)

+1

'Opzioni + FollowSymlinks' richiede' AllowOverride' impostato su 'Opzioni' o sopra il privilegio. rimuovere quella linea e poi dirci cosa sta succedendo. –

+0

Quando rimuovo quella linea, ottengo solo un 404 – Fraser

+0

Questo è meglio. È 96 meno del precedente !! controllare il log degli errori di apache e vedere quale file è stato mappato. –

risposta

7

Usa allo stesso livello della/pubblico

In questo modo prima reindirizzare al pubblico

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.domain.com$ 
RewriteCond %{REQUEST_URI} !public/ 
RewriteRule (.*) /public/$1 [L] 

E dentro/public

allora, gestire index.php

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine On 
</IfModule> 


<IfModule mod_rewrite.c> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 
+0

Aggiungere una barra prima che index.php abbia funzionato per me. RewriteRule^(. *) $ /index.php/$1 [L] –

0

Ho avuto esattamente lo stesso setup come RamiroRS answer, ma ancora ottenuto Internal Server Error. Il mio problema era nei permessi dei file. Le cartelle devono essere 0755 e i file 0644.