Heim  >  Artikel  >  Backend-Entwicklung  >  So hosten Sie ein Laravel-Projekt in einem Unterverzeichnis auf Shared Hosting, ohne „/public' in der URL offenzulegen

So hosten Sie ein Laravel-Projekt in einem Unterverzeichnis auf Shared Hosting, ohne „/public' in der URL offenzulegen

Barbara Streisand
Barbara StreisandOriginal
2024-11-07 20:07:031060Durchsuche

How to Host a Laravel Project in a Subdirectory on Shared Hosting without Exposing `/public` in the URL

Beim Hosten eines Laravel-Projekts auf Shared Hosting besteht eine häufige Herausforderung darin, sicherzustellen, dass URLs nicht das Verzeichnis /public erfordern. Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie Ihre Laravel-App in einem Unterverzeichnis hosten und gleichzeitig die URLs sauber halten.

Schritt 1: Laden Sie Ihr Laravel-Projekt auf den Server hoch

  1. Melden Sie sich bei Ihrem Hosting-Konto an und greifen Sie auf Ihren Dateimanager zu.
  2. Navigieren Sie zum Ordner public_html oder zum Hauptverzeichnis Ihrer Website.
  3. Erstellen Sie einen neuen Ordner (Unterverzeichnis) für Ihr Laravel-Projekt. In diesem Beispiel nennen wir es „hookbox-api.
  4. “.
  5. Laden Sie Ihr gesamtes Laravel-Projekt in den Hookbox-API-Ordner hoch.

Schritt 2: Verschieben Sie index.php in das Stammverzeichnis des Unterverzeichnisses

  1. Öffnen Sie den Ordner „hookbox-api/public“.
  2. Kopieren (oder verschieben) Sie die Datei index.php von public in das Stammverzeichnis von Hookbox-API.
  3. Öffnen Sie die kopierte Datei index.php im Stammverzeichnis von Hookbox-API und aktualisieren Sie die Dateipfade wie folgt:
   require __DIR__.'/vendor/autoload.php';
   $app = require_once __DIR__.'/bootstrap/app.php';

Dadurch wird Laravel angewiesen, die erforderlichen Dateien im Stammverzeichnis des Projekts statt in der Öffentlichkeit zu finden.

Schritt 3: Verschieben Sie die .htaccess-Datei in das Stammverzeichnis des Unterverzeichnisses

  1. Als nächstes verschieben Sie die .htaccess-Datei aus dem öffentlichen Ordner in das Stammverzeichnis von Hookbox-API.
  2. Ersetzen Sie den Inhalt dieser .htaccess-Datei durch Folgendes:
   RewriteEngine On

   # Force HTTPS
   RewriteCond %{HTTPS} off
   RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

   # Redirect all requests to index.php
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^ index.php [L]

Dieser Code stellt sicher, dass alle eingehenden Anfragen an index.php im Hookbox-API-Ordner weitergeleitet werden. Außerdem wird HTTPS erzwungen, wenn auf Ihrer Website SSL aktiviert ist.

Schritt 4: Laravel-Cache leeren (optional, aber empfohlen)

Wenn Sie über SSH-Zugriff verfügen, empfiehlt es sich immer, zwischengespeicherte Konfigurationen und Routen nach jeder Bereitstellungsänderung zu löschen. Führen Sie diese Befehle aus, um sicherzustellen, dass keine zwischengespeicherten Konfigurationskonflikte bestehen bleiben:

php artisan route:cache
php artisan config:cache
php artisan cache:clear

Schritt 5: Testen Sie Ihr Setup

Jetzt sollten Sie im Browser auf Ihre Laravel-Anwendung zugreifen können, ohne /public in der URL zu benötigen. Versuchen Sie, auf eine Route wie die folgende zuzugreifen:

https://www.yourdomain.com/hookbox-api/api/your-route

Wenn die Einrichtung erfolgreich war, sollte dies ohne Fehler geladen werden.

Abschluss

Durch das Verschieben von index.php und .htaccess in das Stammverzeichnis Ihres Unterverzeichnisses und das Aktualisieren der Dateipfade haben Sie Laravel effektiv so konfiguriert, dass es ausgeführt wird, ohne das Verzeichnis /public in der URL offenzulegen. Diese Methode ist nützlich, wenn Sie mit Shared Hosting arbeiten, da sie eine sauberere, professionellere URL-Struktur beibehält.

Das obige ist der detaillierte Inhalt vonSo hosten Sie ein Laravel-Projekt in einem Unterverzeichnis auf Shared Hosting, ohne „/public' in der URL offenzulegen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn