2016-04-22 11 views
0

Ich habe mir in den letzten zwei Tagen den Kopf gebrochen und habe immer noch keine Lösung. Alle Routen in meinem Laravel 5.1 werfen eine NotFoundHttpException.Laravel 5.1 - Dreamhost VPS - Immer bekommen 404 Ausnahme

Meine Ordnerstruktur sieht wie folgt aus:

enter image description here

Einige zusätzliche Informationen

  • Beide example.com und abc.example.com haben Web-Verzeichnis auf /home/username/example.com/myproject/public
  • Ich habe eine .htaccess-Datei im öffentlichen Ordner, die sieht aus wie

    Optionen -MultiViews

    RewriteEngine On 
    
    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 
    
    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
    

Als Bild: enter image description here

  • DebugBar den folgenden Fehler angezeigt wird:

enter image description here

Jede Hilfe sehr geschätzt wird. Ich habe fast alle auf Google gefundenen Lösungen ausprobiert. Keine funktioniert.

Antwort

0

Also nach dem Kampf gegen Zahn und Nagel, um dies zu lösen, entschied ich mich, einen anderen Ansatz zu nehmen und zu meiner Erleichterung, IT ARBEITET!

  1. Statt in einem "myproject" -Ordner zu deployen, kopierte ich alle Laravel-Dateien direkt unter example.com. Wenn Sie also Ihr Repository klonen (wie ich es war), kopierte ich Dateien manuell um eine Ebene nach oben.

  2. Erstellt die richtige .env Datei

  3. Ran die folgenden Befehle in der Reihenfolge:

    Komponist Dump-Autoload

    php Handwerkers config: Cache

und voila! Die Dinge liefen los!

Jetzt ... einige andere wichtige Dinge zu beachten.

Wenn Sie Subdomain-Routing verwenden, müssen Sie Ihre Domäne so einrichten, dass sie nicht das www. In meinem Fall wurde http://example.com zu http://www.example.com und meine Controller-Aktionen scheiterten. Ich bin mir sicher, dass es dafür eine Arbeit gibt.Wird diese Antwort aktualisieren, wenn ich finde und antworte.