Maison  >  Article  >  développement back-end  >  Comment héberger un projet Laravel dans un sous-répertoire sur un hébergement partagé sans exposer « /public » dans l'URL

Comment héberger un projet Laravel dans un sous-répertoire sur un hébergement partagé sans exposer « /public » dans l'URL

Barbara Streisand
Barbara Streisandoriginal
2024-11-07 20:07:031002parcourir

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

Lors de l'hébergement d'un projet Laravel sur un hébergement partagé, un défi courant consiste à s'assurer que les URL ne nécessitent pas le répertoire /public. Voici un guide étape par étape pour héberger votre application Laravel dans un sous-répertoire tout en gardant les URL propres.

Étape 1 : Téléchargez votre projet Laravel sur le serveur

  1. Connectez-vous à votre compte d'hébergement et accédez à votre gestionnaire de fichiers.
  2. Accédez au dossier public_html ou au répertoire principal de votre site Web.
  3. Créez un nouveau dossier (sous-répertoire) pour votre projet Laravel. Dans cet exemple, nous l'appellerons hookbox-api.
  4. Téléchargez l'intégralité de votre projet Laravel dans le dossier hookbox-api.

Étape 2 : Déplacez index.php vers la racine du sous-répertoire

  1. Ouvrez le dossier hookbox-api/public.
  2. Copiez (ou déplacez) le fichier index.php de public vers la racine de hookbox-api.
  3. Ouvrez le fichier index.php copié à la racine de hookbox-api et mettez à jour les chemins de fichiers comme suit :
   require __DIR__.'/vendor/autoload.php';
   $app = require_once __DIR__.'/bootstrap/app.php';

Cela indique à Laravel de trouver les fichiers nécessaires à la racine du projet plutôt que dans le public.

Étape 3 : déplacez le fichier .htaccess vers la racine du sous-répertoire

  1. Ensuite, déplacez le fichier .htaccess du dossier public vers la racine de hookbox-api.
  2. Remplacez le contenu de ce fichier .htaccess par ce qui suit :
   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]

Ce code garantit que toutes les requêtes entrantes sont dirigées vers index.php dans le dossier hookbox-api. Il force également HTTPS si SSL est activé sur votre site.

Étape 4 : Vider le cache de Laravel (facultatif mais recommandé)

Si vous disposez d'un accès SSH, effacer la configuration et les routes mises en cache est toujours une bonne pratique après toute modification de déploiement. Exécutez ces commandes pour vous assurer qu'aucun conflit de configuration en cache ne subsiste :

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

Étape 5 : testez votre configuration

Maintenant, vous devriez pouvoir accéder à votre application Laravel dans le navigateur sans avoir besoin de /public dans l'URL. Essayez d'accéder à un itinéraire comme :

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

Si la configuration a réussi, cela devrait se charger sans aucune erreur.

Conclusion

En déplaçant index.php et .htaccess à la racine de votre sous-répertoire et en mettant à jour les chemins de fichiers, vous avez effectivement configuré Laravel pour qu'il s'exécute sans exposer le répertoire /public dans l'URL. Cette méthode est utile lorsque vous travaillez avec un hébergement partagé, car elle maintient une structure d'URL plus propre et plus professionnelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn