Quitar ‘index.php’ de las URLs en WordPress

Buenas! Hoy os traigo una guia sobre cómo quitar ‘index.php’ de las URLs en WordPress.

Este problema nos lo podemos encontrar si nuestro servidor web no es capaz de identificar correctamente que está utilizando un servidor Apache, así que tenemos que hacérselo saber.

¿Y esto por qué pasa?

Esto pasa porque WordPress está configurado de tal manera que, automáticamente, nos detecta el tipo de servidor web que estamos utilizando, pero a causa de algunas modificaciones, configuraciones a nivel de servidor o apache, o por configuraciones no estándar o por cambios en los headers del servidor, nos puede añadir ‘index.php’ dentro de las URLs y se queda tan pancho.

¿Cómo lo identifico?

Podrás verlo en la URL de tu página web aunque no tiene por qué aparecer (me he encontrado con webs en las que no aparecía pero internamente sí que lo mostraba), pero si dentro de nuestro WP nos vamos a Ajustes – Enlaces Permanentes, nos encontraremos que todas las URLs de las Estructuras de enlaces aparecen con ‘index.php’ tal que así:

quitar index.php de las URLS problema
¿Cómo se soluciona?

Pues hay 2 maneras de hacerlo, os explico ambas:

1. Solución más rápida (pero menos recomendable por el punto 3)

¿Por qué es temporal? Pues porque te va a funcionar hasta que actualices WordPress, que el fichero se sobrescribirá y tendrás que volver a añadir el código.

Los pasos a seguir son los siguientes:
1. Nos vamos a la raíz de nuestro WordPress -> wp-includes, dentro de este directorio buscamos y abrimos el fichero vars.php

2. Al final del archivo añadimos el siguiente texto para forzar a que WordPress reconozca a Apache como servidor:

				
					$is_apache = 1;
				
			

3. Debemos proteger el archivo contra modificaciones, de esta manera evitaremos que cuando WP se actualice, sobrescriba el fichero. Para ello, podemos acceder a través de SSH a nuestra página web y hacer que el fichero sea inmutable utilizando este código:

				
					sudo chattr +i wp-includes/vars.php
				
			

Si en algún momento queremos realizar alguna modificación dentro del archivo vars.php, necesitaremos volver a desbloqueando utilizando:

				
					sudo chattr -i wp-includes/vars.php
				
			

4. Ahora volvemos a nuestro WordPress y dentro de Ajustes – Enlaces Permanentes ya observaremos que desaparece ‘index.php’ y veremos la URL ‘bonita’

quitar index.php de las URLS resolución

Esta solución, pese a que nos soluciona la papeleta, no es la más recomendable por el simple hecho de que en el momento que actualicemos WP, como el archivo vars.php está bloqueado, si desde WP hacen algún cambio, éste no se aplicará, lo que puede llevar a fallos dentro de la propia web.

2. Solución recomendada: Usar un Child Theme

1. Nos vamos a la raíz de nuestro WordPress -> wp-content -> themes y creamos una nueva carpeta llamada, por ejemplo: child-theme-hello (porque en nuestro caso, utilizaremos Hello Elementor de plantilla)

quitar index.php de las URLS directorio

2. Dentro de este nuevo directorio crearemos un archivo style.css con el siguiente contenido:

				
					/*
Theme Name: Mi Tema Hijo
Template: nombre-del-tema-padre
*/
				
			

En el Template hay que poner el nombre exacto del tema principal que se está utilizando, puedes verlo en el nombre de los directorios mismo.

3. Seguidamente crearemos un fichero functions.php también dentro de nuestro nuevo directorio y dentro, añadiremos el siguiente código:

				
					<?php
add_action('init', function() {
    global $is_apache;
    $is_apache = 1;
});
?>
				
			

El resultado final de directorios y subdirectorios, sería este:

4. Finalmente, nos vamos al backend de WordPress y activamos el nuevo Child Theme. Veréis que en ese mismo instante, dejará de aparecer ‘index.php’ y ya no tendréis que preocuparos por las actualizaciones de WordPress.

quitar index.php de las URLS resolución

¡Y esto sería todo! Escojáis al opción que escojáis, se os solucionará el problema, una manera es mejor de otra, pero bueno, siempre está bien tener alternativas.

Espero que os haya servido de ayuda,

¡Nos vemos!

Quizás esto también podría interesarte...

Cambiar la plantilla por defecto páginas Elementor

Vamos a solucionar el error de la Excepción no controlada, donde nos indica que falta el elemento raíz en Sage50

Quizás también podría interesarte...

¡Gracias por llegar hasta aquí! ¿Te ha gustado la publicación, te ha resultado útil o conoces una solución mejor?

¡Déjanos tu comentario!

Deja una respuesta

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