Saltar al contenido

Evite la carpeta pública de laravel y abra directamente la raíz en el servidor web

Te recomendamos que revises esta solución en un ambiente controlado antes de enviarlo a producción, saludos.

Solución:

Supongamos que tiene esta estructura de carpetas en su servidor

.cpanel/
public_html/
public_ftp/
..

Y la estructura de carpetas de laravel es

app/
bootstrap/
public/
vendor/
composer.json
artisan
..

Puede crear un nombre de carpeta mylaravelsite en su servidor en línea con public_html y public_ftp carpeta, y copie en ella toda la aplicación laravel excepto la carpeta pública porque pegará todo su contenido en la carpeta public_htmlentonces tienes ahora:

.cpanel/
public_html/
public_html/packages
public_html/vendor
public_html/index.php
public_html/.htaccess
...
public_ftp/
mylaravelsite/
mylaravelsite/app
mylaravelsite/bootstrap
...

En tu public_html/index.php cambiar la siguiente línea:

require __DIR__.'/../bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/start.php';

a

require __DIR__.'/../mylaravelsite/bootstrap/autoload.php';

$app = require_once __DIR__.'/../mylaravelsite/bootstrap/start.php';

y no te olvides de cambiar /mylaravelsite/bootstrap/paths.php ruta pública, puede usarla.

'public' => __DIR__.'/../public',

a

'public' => __DIR__.'/../../public_html',

Su sitio debería estar funcionando.

Cree .htaccess en la carpeta raíz y escriba estas líneas


    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]

Para el servidor de producción, se recomienda que apunte su dominio directamente a la carpeta pública

Parece que la información que te falta es:

Raiz del documento

Esto también se llama la “raíz web”. Apache lo llama específicamente DocumentRoot: haga clic en ese enlace para obtener la explicación oficial.

Básicamente, lo que hace es establecer de qué directorio extrae los archivos el servidor. En Laravel, la raíz del documento debe ser el public carpeta.

Establecer DocumentRoot en public significa que ir a http://mylaravelsite.com en el navegador de hecho estará “apuntando” a la public carpeta como quieras.

En el archivo .htaccess (en realidad, más probablemente en la configuración del host virtual), puede configurar el DocumentRoot para su sitio:

DocumentRoot /path/to/laravel-app/public

La forma en que configure esto depende de su alojamiento. Cada alojamiento tiene diferentes formas de configurar un sitio web y, por lo tanto, no podemos responder eso específicamente para usted; debe consultar el soporte técnico de su alojamiento web. los key el punto es que el public El directorio debe ser la raíz web, mientras que todo lo demás debe estar “detrás de la raíz web”.

Sin embargo, una advertencia justa: algunos proveedores de alojamiento no le brindan suficiente acceso para lograr eso.

valoraciones y comentarios

Si posees algún interrogante o capacidad de progresar nuestro enunciado eres capaz de ejecutar una referencia y con placer lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *