2013-04-11 7 views
10

Ich versuche, eine Website live zu setzen. Die Seite funktioniert einwandfrei auf einem Live-Dev-Server, den wir verwendet haben, um die Site dem Client zu zeigen. Hier ist die .htaccess aus dem Live-dev (funktioniert):Laravel htaccess Ausgabe

<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 

Und hier ist der .htaccess aus der Live-Website:

<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> 

Die 2 sind identisch mit Ausnahme des HTTP_HOST und die Entfernung von der Authentifizierung.

Es gibt mir einen generischen "Internal Server Error".

Ich habe versucht, den Inhalt von .htaccess zu löschen, der mir nur Seite nicht gefunden, so dass das Problem definitiv in .htaccess liegt.

Insgesamt eine .htaccess virgin, welche Schritte kann ich unternehmen, um die Ursache des Problems zu finden?

Dank

(es ist Laravel 3.2.13)

+1

'Optionen + FollowSymlinks' erfordert' AllowOverride' auf 'Optionen' oder höher festgelegt. entferne diese Zeile und erzähle uns, was los ist. –

+0

Wenn ich diese Zeile entfernen, bekomme ich nur eine 404 – Fraser

+0

Das ist besser. Es ist 96 weniger als das vorherige !! Überprüfen Sie das Apache-Fehlerprotokoll und sehen Sie sich an, welche Datei zugeordnet wurde. –

Antwort

7

Verwendung auf dem gleichen Niveau von/public

diese Weise der öffentlichen

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

umleiten ersten und innen/öffentlich

dann behandeln Sie 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

Einen Schrägstrich hinzufügen, bevor index.php für mich funktionierte. RewriteRule^(. *) $ /index.php/$1 [L] –

0

ich als RamiroRS answer genau gleiche Setup hatte, aber immer noch Internal Server Error bekam. Mein Problem war in Dateiberechtigungen. Ordner sollten 0755 und Dateien 0644 sein.