Laravel 5 auf Uberspace Internal Server Error 500

10. März 2015 Web-Entwicklung von Eric Kubenka

Oft verwende ich für meine Entwicklungen das PHP Framework Laravel. Lokal entwickle ich die Anwendungen mittels Homestead. Nach dem ersten Push ins Git Repository und dem anschließenden Clone auf dem Webserver, in meinem Fall Uberspace, stehe ich aber jedes mal erneut vor einem Problem, wenn ich andere Routen als '/' aufrufe.

Internal Server Error 500

Meine Konfiguration

Ich lade meine Clones generell in mein domains-Verzeichnis auf Uberspace, welches einen Symlink zu /var/www/virtual/{$username} darstellt. Dort habe ich einen Unterordner clones.

Folgend ergibt sich also folgende Ordner-Struktur bei mir innerhalb des domains-Verzeichnisses:

domains
    - clones
        - codefever
        - fooproject
        - laravelproject
            - public
    - code-fever.de #Symlink zu clones/codefever
    - foo.code-fever.de # Symlink zu clones/fooproject
    - laravelproject.code-fever.de # Symlink zu clones/laravelproject/public

Die Subdomains für meine Laravelprojekte linke ich also imemr direkt in das public-Verzeichnis des Projekts.

Erster Aufruf nach dem Initialisieren - Der Fehler

Nach dem Clonen und verknüpfen, funktioniert die Default Route '/' bei mir immer wunderbar, leider machen alle anderen Routen wie /foo Probleme und melden:

Internal Server Error 500

Lösung - Die .htaccess

Das Problem lässt sich bei mir immer durch eine Anpassung der .htaccess-Datei im /public-Verzeichnis des Laravelprojekts lösen. Und zwar ist der ausschlaggegeben Punkt, dass Hinzufügen der Zeile RewriteBase /.

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On
    
    #Add Line RewriteBase
    RewriteBase /

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

Zurück