.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 subcarpetapublic
.# 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