Ich muss die generierte URL in Laravel entfernen index.php
oder public/index.php
daraus entfernen . Üblicherweise ist der Weg localhost/public/index.php/someWordForRoute
: Es sollte so etwas wie seinlocalhost/someWordForRoute.
.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes.
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php[L]
app / config / app.php
'url' => 'http://localhost',
Wie kann ich das ändern?
mod_rewrite
aktiviert ist./var/www/project_name/public
Antworten:
Option 1: Verwenden Sie .htaccess
Wenn es noch nicht vorhanden ist, erstellen Sie eine .htaccess-Datei im Laravel-Stammverzeichnis. Erstellen Sie eine
.htaccess
Datei in Ihrem Laravel-Stammverzeichnis, falls diese noch nicht vorhanden ist. (Normalerweise befindet es sich unter Ihrempublic_html
Ordner)Bearbeiten Sie die .htaccess-Datei so, dass sie den folgenden Code enthält:
Jetzt sollten Sie ohne den Teil "/public/index.php/" auf die Website zugreifen können.
Option 2: Verschieben Sie die Objekte im Verzeichnis '/ public' in das Stammverzeichnis
Erstellen Sie einen neuen Ordner in Ihrem Stammverzeichnis und verschieben Sie alle Dateien und Ordner mit Ausnahme des öffentlichen Ordners. Sie können es so nennen, wie Sie wollen. Ich werde "laravel_code" verwenden.
Verschieben Sie anschließend alles aus dem öffentlichen Verzeichnis in den Stammordner. Es sollte etwas Ähnliches ergeben:
Danach müssen wir nur noch die Speicherorte in der
laravel_code/bootstrap/paths.php
Datei und in der Datei bearbeitenindex.php
.In
laravel_code/bootstrap/paths.php
finden Sie die folgende Codezeile:Und ändern Sie sie zu:
In
index.php
finden Sie diese Zeilen:Und ändern Sie sie zu:
Quelle: So entfernen Sie / public / von der URL in Laravel
quelle
etc/apache2/apache2.conf
Änderung von der StelleAllowOverride None
zu ändern ,AllowOverride All
an der Sie die Verzeichniskonfiguration sehen<Directory /var/www/></Directory>
.<Directory ...
Config hatAllowOverride All'
so etwas wie dieses:<Directory "/var/www/html/laravel/public"> Options Indexes FollowSymLinks MultiViews **AllowOverride All** </Directory>
Ich habe dies auf Laravel 4.2 versucht
Benennen
server.php
Sieindex.php
die.htaccess
Datei in Ihrem Laravel-Stammordner um und kopieren Sie die Datei aus dem/public
Verzeichnis in Ihren Laravel-Stammordner.Ich hoffe, es funktioniert
quelle
Verwechseln Sie sich nicht mit anderen Optionen, die ich unten verwende, und sie werden auch für Sie nützlich sein. Legen Sie die folgenden Htacces in Ihre Wurzel.
Gehen Sie in Ihr öffentliches Verzeichnis und legen Sie eine weitere htaccess-Datei mit dem folgenden Code-Snippet ab
Es funktioniert... !!!
Laravel Verwendet unter .htaccess
quelle
HIER SIND EINFACHE SCHRITTE ZUM ENTFERNEN DER ÖFFENTLICHEN URL (Laravel 5)
1: Kopieren Sie alle Dateien aus dem öffentlichen Ordner und fügen Sie sie in den Laravel-Stammordner ein
2: Öffnen Sie index.php und ändern Sie
Von
Zu
Und
Zu
In Laravel 4 ist Pfad 2
$app = require_once __DIR__.'/bootstrap/start.php';
anstelle von$app = require_once __DIR__.'/bootstrap/app.php';/app.php
Das ist es.
quelle
1) Überprüfen Sie, ob mod_rewrite aktiviert ist. Gehen Sie zum
/etc/apache2/mods-enabled
Verzeichnis und prüfen Sie, ob dasrewrite.load
verfügbar ist. Wenn nicht, aktivieren Sie es mit dem Befehl.sudo a2enmod rewrite
Das Rewrite-Modul wird aktiviert. Wenn es bereits aktiviert ist, wird die Nachricht angezeigtModule rewrite already enabled
.2) Erstellen Sie einen virtuellen Host für das öffentliche Verzeichnis, damit
http://localhost/public/index.php
wir ihn nicht verwenden könnenhttp://example.com/index.php
. [daher wird der Name des öffentlichen Ordners ausgeblendet]3) Erstellen Sie dann einen .htaccess, der die index.php vor Ihrer URL verbirgt, die sich im Stammverzeichnis (öffentlicher Ordner) befinden soll.
quelle
mod_rewrite
war behindert.Dies hat wahrscheinlich sehr wenig mit Laravel und alles mit Ihren Apache-Konfigurationen zu tun.
Haben Sie Zugriff auf Ihre Apache-Serverkonfiguration? Wenn ja, lesen Sie dies in den Dokumenten nach:
Der Grund, warum ich dies zuerst erwähne, ist, dass es am besten ist, es
.htaccess
vollständig zu entfernen, wenn Sie können, und einDirectory
Tag innerhalb einesVirtualHost
Tags zu verwenden. Abgesehen davon wird der Rest davon ausgehen, dass Sie.htaccess
aus irgendeinem Grund auf der Route bleiben .Um dies aufzuschlüsseln, könnten einige Dinge passieren:
Ich
.htacces
stelle vielleicht sinnlos fest, dass Ihre Datei in Ihrer Frage benannt ist. Ich vermute, dass es sich um einen Tippfehler handelt, aber bei der Gelegenheit, dass Sie ihn übersehen haben und tatsächlich nur das zweite s fehlt, ist dies genau der kleine Fehler, der mich dazu bringen würde, meinen Kopf gegen die Wand zu schlagen und nach etwas Herausforderndem zu suchen .Ihr Server konnte dies nicht zulassen
.htaccess
. Um dies zu überprüfen, gehen Sie zu Ihrer Apache-Konfigurationsdatei. In modernen Apache-Builds befindet sich dies normalerweise nicht in einer Konfigurationsdatei. Stellen Sie daher sicher, dass Sie diejenige verwenden, die auf Ihre App verweist, wo immer sie vorhanden ist. Veränderungzu
In der Folge empfehlen die Apache-Dokumente außerdem, dass Sie dies aus Sicherheitsgründen nicht für jeden Ordner tun, wenn Sie das
.htaccess
Umschreiben vornehmen möchten. Tun Sie dies stattdessen für die Ordner, zu denen Sie hinzufügen müssen.htaccess
.Haben Sie
mod_rewrite
aktiviert? Das könnte die Probleme verursachen. Ich stelle fest, dass Sie das Etikett oben haben<IfModule mod_rewrite.c>
. Versuchen Sie, diese Tags auskommentieren und Apache neu starten. Wenn Sie eine Fehlermeldung erhalten, liegt dies wahrscheinlich daran, dass Sie Folgendes aktivieren müssenmod_rewrite
: So aktivieren Sie mod_rewrite für Apache 2.2Hoffe das hilft. Ich habe einige der häufigsten Probleme genannt, aber es gibt einige andere, die profaner oder einzigartiger sein könnten. Ein weiterer Vorschlag auf einem Dev-Server? Installieren Sie Apache erneut. Wenn möglich, tun Sie dies aus einer anderen Quelle mit einem guten Tutorial.
quelle
Für Laravel 4 & 5:
server.php
in Ihrem Laravel-Stammordner umindex.php
.htaccess
Datei aus dem/public
Verzeichnis in Ihren Laravel- Stammordner .Das ist es !! :) :)
quelle
Laravel wird bereits mit einer hübschen URL geliefert .htaccess ... Sie sollten sofort einsatzbereit sein ... http://laravel.com/docs/installation#pretty-urls
Stellen Sie sicher, dass mod_rewrite aktiviert ist und dass Ihr Home-Pfad auf das öffentliche Verzeichnis Ihrer Anwendung festgelegt ist.
quelle
mod_rewrite
und den Code kopiert, der auf dieser Seite und immer noch ohne Werke istServerAdmin webmaster@localhost DocumentRoot /home/web-apps/myproject/public
user
ist der Ort, an dem ich Fotos aufbewahre, auch ich habe eine Blade-Datei namensuser
, wenn ich in die URL schreibe,myproject.com/user
zeigt mir der Inhalt des Ordners, die BilderDazu müssen Sie die folgenden Schritte ausführen:
Ordnen Sie Ihre Domain dem öffentlichen Ordner Ihres Projekts zu (z. B. / var / www / html / yourproject / public) (wenn Sie Linux verwenden).
Gehen Sie zu Ihrem öffentlichen Ordner und bearbeiten Sie Ihre
.htaccess
Datei dorthttps
diese zu schützen.quelle
Stellen Sie außerdem sicher, dass Rewrite Engline nach dem Bearbeiten der .htaccess-Datei aktiviert ist
quelle
Verwenden Sie dies in .htaccess und starten Sie den Server neu
quelle
Hoffe das hilft wie bei mir.
quelle
Ich habe gerade Laravel 5 für ein Projekt installiert und im Stammverzeichnis befindet sich eine Datei namens
server.php
.Ändern Sie es in
index.php
und es funktioniert oder geben Sie Terminal ein:quelle
Benennen
server.php
Sieindex.php
die.htaccess
Datei in Ihrem Laravel-Stammordner um und kopieren Sie die Datei aus dem/public
Verzeichnis in Ihren Laravel-Stammordner.quelle
Es funktioniert und es ist 100% sicher
https://medium.com/@matteovirgilio/laravel-5-how-to-change-the-public-folder-and-secure-private-files-on-shared-hosting-a8e2e5b9b25f
quelle
Wenn Sie IIS Windows Server verwenden, fügen Sie eine
web.config
Datei im Stammordner hinzu und geben Sie den folgenden Code ein:und wenn Sie verwenden,
.htaccess
verwenden Sie diese:quelle
quelle
Gemäß Laravel 5.3 die oben genannten Dinge nicht richtig funktionieren, aber bitte wie folgt vor , ruhig und folgen Sie sein:
Schritt 1. Gehen Sie in das Laravel-Projekt.
Schritt 2. Erstellen Sie ein zufälliges Verzeichnis / Ordner, z. laravelcode
Schritt 3. Verschieben Sie alle Ordner und Dateien (außer öffentlichen Ordner).
Schritt 4. Verschieben Sie alle Ordner und Dateien, die sich im öffentlichen Ordner befinden, in das laravel-Projekt.
Schritt 5. Nun befindet sich im laravel-Projekt bitte die Datei index.php Öffnen Sie das und ändern Sie die Ordnerpfade für Bootstrap gemäß dem neuen Pfad wie zuvor " DIR erforderlich . '/ .. / bootstrap / autoload.php';" Jetzt wird es " DIR erfordern . '/ laravelcode / bootstrap / autoload.php';"
Das heißt, es läuft einfach Ihre URL ohne public und index.php wie unten http: // localhost / blog /
quelle