Configurar laravel dentro de un wordpress en go daddy

Me ha pasado que instalé un sitio hecho en laravel dentro de una carpeta en el root de un sitio hecho con wordpress, y bueno, laravel no funcionaba. El problema se ocasiona por las reglas .htaccess de wordpres, estas reglas están tratan de parsear las rutas de laravel con el index.php de wordpress. Me ha tomado un tiempo poner a funcionar el laravel con las soluciones que encontré en internet, así que dejo anotado el procedimiento que seguí por si a alguien le ayuda en el futuro.

Editar el .htaccess de laravel

En internet todos hablan de editar el .htaccess de laravel, pero yo no sabia exactamente como. Lo que deben hacer es abrir el .htaccess que se encuentra en la carpeta public de laravel (si por alguna razón no lo tienen, pueden descargarlo desde aquí: https://github.com/laravel/laravel/blob/master/public/.htaccess) y en la linea que dice:

RewriteRule ^ index.php [L]

Añades la ruta completa a tu carpeta public. te debe quedar algo como:

RewriteRule ^ /ruta/hasta/laravel/public/index.php [L]

El archivo .htaccess puede variar un poco dependiendo de la versión de laravel que estes usando, pero lo importante es llegar a la linea que contiene la referencia a index.php y cambiar eso por /ruta/hasta/laravel/public/index.php para que sobreescriba las reglas de wordpress. a la final el archivo .htaccess debería lucir mas o menos como esto:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ /ruta/hasta/laravel/public/index.php [L]
</IfModule>

Actualizamos el .htaccess en el hosting de goDaddy y ya podemos entrar a http://tudominio.com/ruta/hasta/laravel/public/ para usar la aplicación. Si queremos evitar el uso de “public/” en la URL de nuestro sitio, para pasar de  “http://tudominio.com/ruta/hasta/laravel/public/ ”  a  algo como “http://tudominio.com/ruta/hasta/laravel/&#8221; tendremos que hacer un paso adicional. Vamos a crear un .htaccess adicional en la carpeta de laravel ( al mismo nivel que la carpeta app/ y public/ )  y en ese archivo pondremos las siguientes reglas:

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} ^/trabajos/mansion
    RewriteRule ^ /trabajos/mansion/public/index.php [L]
</IfModule>

Lo grabamos y lo subimos en la carpeta de laravel, y ahora podemos acceder a nuestra aplicación sin necesidad de escribir “public” en el url.

Estas reglas deberían funcionar en otro tipo de situaciones y no solo para poder instalar un proyecto de laravel dentro de una instalación de wordpress. Sobre todo el ultimo que es más general y sirve para evitar el uso de “public” en las URLs de laravel. Espero esto les sirva y si tienen una mejor solución dejame saber en los comentarios.

Anuncios