
Benutzer1537360
Ich weiß, dass dies eine sehr beliebte Frage ist, aber ich konnte keine funktionierende Lösung für Laravel 5 finden. Ich habe lange versucht, von Codeigniter zu migrieren, aber dieser komplizierte Installationsprozess schreckt mich immer wieder ab.
Ich möchte keine VM ausführen, das scheint nur umständlich zu sein, wenn ich zwischen Projekten wechsele.
Ich möchte meinen Dokumentenstamm nicht auf den öffentlichen Ordner setzen, das ist auch umständlich, wenn ich zwischen Projekten wechsele.
Ich habe die Methode .htaccess mod_rewrite ausprobiert
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Dies gibt mir nur eine Laravel NotFoundHttpException in der compiled.php-Zeile 7610.
Als ich L4 vor einiger Zeit ausprobiert habe, habe ich die Methode verwendet, den Inhalt des öffentlichen Ordners in das Stammverzeichnis zu verschieben. Die Struktur von L5 ist ganz anders und nach den gleichen Schritten brach Laravel vollständig zusammen (der Server würde nur eine leere Seite zurückgeben).
Gibt es eine anständige Methode zum Entfernen von “öffentlich” in einer Entwicklungsumgebung, die:
- Funktioniert mit L5
- Ermöglicht es mir, problemlos zwischen Projekten zu wechseln (normalerweise arbeite ich an 2 oder 3 gleichzeitig).
Danke
** Ich verwende MAMP und PHP 5.6.2

Derk Jan Speelmann
BITTE BEACHTEN SIE wenn Sie ein Laravel-Projekt mit Docker bedienen: Sie müssen nichts davon tun. Verwenden Sie nur diese Option wenn Ihre Wurzel (oder häufiger: public_html
)-Verzeichnis Ihrer Website ist Ihr Laravel-Projekt (dies ist nicht der Fall, wenn Sie Docker verwenden).
NICHT!
SIE SOLLTEN WIRKLICH NICHT umbenennen server.php
in Ihrem Laravel-Stammordner nach index.php
und kopiere die .htaccess
Datei aus der /public
Verzeichnis in Ihren Laravel-Stammordner !!!
Auf diese Weise kann jeder auf einige Ihrer Dateien zugreifen (.env
zum Beispiel). Versuch es selber. Das willst du nicht!
TUN
Stattdessen sollten Sie eine erstellen .htaccess
Datei in Ihrem Stamm wie folgt:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
Dadurch werden alle Ihre Basis-URIs stillschweigend in die umgeschrieben /public
Mappe. Sogar alle Überschriftenzum Beispiel den HTTP-Autorisierungs-Headerund alle optionalen URI-Parameter werden stillschweigend an die weitergegeben /public
Ordner auch.
Das ist alles
Erstellen Sie in Laravel 5.5 eine .htacess-Datei in Ihrem Stammverzeichnis und platzieren Sie den folgenden Code:- Referenzlink
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>

Udhav Sarvaiya
Schaffen .htaccess
Datei in Wurzel Verzeichnis und platzieren Sie Code wie unten.
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>
Einfache Möglichkeit, die Öffentlichkeit von der URL von Laravel 5 zu entfernen. Sie müssen nur index.php und .htaccess aus dem öffentlichen Verzeichnis ausschneiden und in das Stammverzeichnis einfügen, das ist alles und zwei Zeilen in index.php als ersetzen
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
NotizHinweis: Die obige Methode ist nur für Anfänger gedacht, da sie möglicherweise Probleme beim Einrichten des virtuellen Hosts haben. Die beste Lösung besteht darin, den virtuellen Host auf dem lokalen Computer einzurichten und ihn auf das öffentliche Verzeichnis des Projekts zu verweisen.
9895200cookie-checkLaravel 5 – Öffentlich von der URL entfernenyes
Die Ordnerstruktur in der Anleitung ist anders als meine, ich nehme an, er verwendet L5 nicht? Ich habe die Änderungen, die er an der Bootstrap/Paths-Datei vorgenommen hat, ausgelassen, da sie nicht existiert. Das Projekt scheint aber zu funktionieren. Denkst du das ist in Ordnung?
– Benutzer1537360
6. Februar 2015 um 11:37 Uhr
Mein Fehler ließ mich eine Antwort für L5 hinzufügen
– kamlesh.bar
6. Februar 2015 um 11:41 Uhr
kein Erfolg beim Versuch
– kamlesh.bar
6. Februar 2015 um 12:06 Uhr
Es scheint zu funktionieren, indem nur die Pfade in der Datei index.php geändert werden, aber ich bin neu bei Laravel und kann daher offensichtlich nicht kommentieren, ob dies stabil / sicher ist.
– Benutzer1537360
6. Februar 2015 um 13:06 Uhr
Die anderen Ordner/Dateien sollten sich unter Ihrem Dokumentenstamm befinden.
– Mike Rockett
7. Februar 2015 um 18:04 Uhr