Cómo Eliminar 'index.php' de las URLs en WordPress: Guía Completa

Cómo Eliminar ‘index.php’ de las URLs en WordPress
El Problema con ‘index.php’ en las URLs
Cuando WordPress no puede identificar correctamente que estás usando Apache como servidor web, todas tus URLs incluirán “index.php”. Este problema es común especialmente cuando se ha modificado el nombre del servidor o su configuración, lo que impide que WordPress detecte automáticamente que está corriendo en un servidor Apache.
¿Por qué ocurre esto?
WordPress intenta detectar automáticamente el tipo de servidor web que estás utilizando para configurar las URLs de manera óptima. Sin embargo, en algunas situaciones como:
- Modificaciones en el nombre del servidor
- Configuraciones personalizadas de Apache
- Entornos de servidor no estándar
- Modificaciones en los headers del servidor
WordPress puede fallar en identificar correctamente que está corriendo en Apache, lo que resulta en la inclusión de “index.php” en todas las URLs.
Ejemplos de URLs problemáticas
Cuando esto sucede, verás URLs con este formato:
https://tudominio.com/?p=123
https://tudominio.com/index.php/2025/03/mi-articulo/
https://tudominio.com/index.php/categoria/articulo/
https://tudominio.com/index.php/archivos/123
La Solución: Forzar la Detección de Apache
Para resolver este problema de forma permanente, seguiremos estos pasos:
- Accede al servidor
- Conéctate via SSH a tu servidor
- Navega al directorio raíz de WordPress
- Localiza el archivo vars.php
- Dirígete a la carpeta
wp-includes
- Busca el archivo
vars.php
- Dirígete a la carpeta
- Modifica el archivo
- Abre
vars.php
en un editor - Añade esta línea al final del archivo:
$is_apache = 1;
- Esta línea fuerza a WordPress a reconocer Apache como servidor
- Abre
- Protege el archivo contra modificaciones
- Usa el comando
chattr
para hacer el archivo inmutable:sudo chattr +i wp-includes/vars.php
- Esto evitará que el archivo sea modificado durante las actualizaciones
- Para verificar el estado, usa:
lsattr wp-includes/vars.php
- Usa el comando
- Actualiza la configuración
- Ve a Ajustes > Enlaces permanentes
- No necesitas cambiar nada, solo guarda
- Esto regenerará la estructura de URLs
Consideraciones de seguridad
- El uso de
chattr
requiere acceso root al servidor - Si necesitas actualizar manualmente el archivo en el futuro:
sudo chattr -i wp-includes/vars.php # Permite modificaciones # Realiza tus cambios sudo chattr +i wp-includes/vars.php # Vuelve a proteger el archivo
Conclusión
Esta solución proporciona una forma permanente de mantener las URLs limpias en WordPress, sin preocuparse por las actualizaciones del sistema. El uso de chattr
asegura que el archivo vars.php
permanezca intacto, manteniendo tu configuración de URLs consistente en todo momento.