"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo alojar un proyecto Laravel en un subdirectorio de alojamiento compartido sin exponer `/public` en la URL

Cómo alojar un proyecto Laravel en un subdirectorio de alojamiento compartido sin exponer `/public` en la URL

Publicado el 2024-11-17
Navegar:686

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

Al alojar un proyecto de Laravel en alojamiento compartido, un desafío común es garantizar que las URL no requieran el directorio /public. Aquí tienes una guía paso a paso para alojar tu aplicación Laravel en un subdirectorio manteniendo las URL limpias.

Paso 1: sube tu proyecto Laravel al servidor

  1. Inicie sesión en su cuenta de hosting y acceda a su administrador de archivos.
  2. Navega a la carpeta public_html o al directorio principal de tu sitio web.
  3. Crea una nueva carpeta (subdirectorio) para tu proyecto Laravel. En este ejemplo, lo llamaremos hookbox-api.
  4. Sube todo tu proyecto Laravel a la carpeta hookbox-api.

Paso 2: mueva index.php a la raíz del subdirectorio

  1. Abra la carpeta hookbox-api/public.
  2. Copie (o mueva) el archivo index.php de público a la raíz de hookbox-api.
  3. Abra el archivo index.php copiado en la raíz de hookbox-api y actualice las rutas del archivo de la siguiente manera:
   require __DIR__.'/vendor/autoload.php';
   $app = require_once __DIR__.'/bootstrap/app.php';

Esto le dice a Laravel que busque los archivos necesarios dentro de la raíz del proyecto en lugar de hacerlo público.

Paso 3: mueva el archivo .htaccess a la raíz del subdirectorio

  1. A continuación, mueva el archivo .htaccess de la carpeta pública a la raíz de hookbox-api.
  2. Reemplace el contenido de este archivo .htaccess con lo siguiente:
   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]

Este código garantiza que todas las solicitudes entrantes se dirijan a index.php en la carpeta hookbox-api. También fuerza HTTPS si su sitio tiene SSL habilitado.

Paso 4: borrar la caché de Laravel (opcional pero recomendado)

Si tiene acceso SSH, borrar la configuración y las rutas almacenadas en caché siempre es una buena práctica después de cualquier cambio en la implementación. Ejecute estos comandos para asegurarse de que no queden conflictos de configuración en caché:

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

Paso 5: Pruebe su configuración

Ahora, deberías poder acceder a tu aplicación Laravel en el navegador sin necesidad de /public en la URL. Intente acceder a una ruta como:

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

Si la configuración fue exitosa, esto debería cargarse sin errores.

Conclusión

Al mover index.php y .htaccess a la raíz de su subdirectorio y actualizar las rutas de los archivos, ha configurado efectivamente Laravel para que se ejecute sin exponer el directorio /public en la URL. Este método es útil cuando se trabaja con alojamiento compartido, ya que mantiene una estructura de URL más limpia y profesional.

Declaración de liberación Este artículo se reproduce en: https://dev.to/msnmongare/how-to-host-a-laravel-project-in-a-subdirectory-on-shared-hosting- without-exposing-public-in-the- url- 50cp?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3