para index htaccess app .htaccess laravel

.htaccess - index - laravel htaccess apache



¿Cómo redirecciona todas las solicitudes a la carpeta pública/en laravel 5? (5)

Tengo una estructura de proyecto clásica de Larevel 5 y necesito redirigir todas las solicitudes a public/ .

Estoy en un entorno de alojamiento clásico, por lo que es public/ es una subcarpeta de mi raíz de documentos.

Me imagino que se puede hacer a través de .htaccess pero todavía tengo que averiguar cómo. ¿Alguien puede ayudar?

Gracias


El escenario ideal es tener /home/user/public como un enlace simbólico desde /home/user/laravel/public .


Este es un extracto de otra respuesta que también puede ayudarlo.

-

  • Modifique su public_html/.htaccess para redirigir todas las solicitudes a la subcarpeta public .

    # public_html/.htaccess <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect All Requests To The Subfolder RewriteRule ^ /public </IfModule>

  • Asegúrese de tener el public_html/public/.htaccess ( GitHub ) adecuado.

    # public_html/public/.htaccess <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] # Handle Authorization Header RewriteCond %{HTTP:Authorization} RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] </IfModule>


Hay dos soluciones:

1. Usando .htaccess con mod_rewrite

RewriteEngine on RewriteCond %{REQUEST_URI} !^public RewriteRule ^(.*)$ public/$1 [L]

2. Puede agregar un archivo index.php que contenga el siguiente código y colocarlo en su carpeta raíz de Laravel (carpeta public_html).

<?php header(''Location: public/'');


No necesita cambiar nada en el archivo público / .htaccess predeterminado de Laravel.

Simplemente cree un nuevo .htaccess en el mismo nivel que su carpeta pública y agregue el siguiente contenido:

DirectoryIndex index.php RewriteEngine On RewriteRule ^$ public/index.php [L] RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

Que simple


Si usas cPanel, entonces:

1. Vaya a la carpeta: / var / cpanel / userdata / my_domain

2. Edite los dos dominios: my.domain y my.domain_SSL

Añadir a la sección documentroot / public :

documentroot: / home / user / public_html / public

3. Reconstruir la configuración de Apache: / scripts / rebuildhttpdconf && service httpd restart