Cómo solucionar el error 404 en todas las páginas excepto la de inicio en WordPress

Este artículo explica cómo solucionar un problema común en WordPress donde la página de inicio funciona correctamente pero todas las demás páginas, entradas y enlaces devuelven un error 404 Not Found.

Síntomas

  • La página de inicio de WordPress carga correctamente.
  • Todas las demás páginas, entradas, categorías y enlaces devuelven error 404.
  • El problema ocurre después de una migración, cambio de hosting o modificación del archivo .htaccess.

Causa

WordPress utiliza el archivo .htaccess para manejar las URLs amigables (permalinks). Cuando este archivo no existe, está vacío o le faltan las directivas de reescritura necesarias, el servidor no puede redirigir las solicitudes correctamente al archivo index.php de WordPress.

Solución

Paso 1: Restaurar las directivas de WordPress en .htaccess

Accede a los archivos de tu sitio mediante el Administrador de Archivos de tu panel de control (cPanel o DirectAdmin) o por FTP.

Localiza el archivo .htaccess en la raíz de tu instalación de WordPress (donde está wp-config.php).

Nota: El archivo .htaccess es un archivo oculto. En el Administrador de Archivos, habilita la opción para mostrar archivos ocultos.

Si el archivo no existe, créalo. Luego añade o reemplaza el contenido con las siguientes directivas básicas de WordPress:

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Guarda el archivo.

Paso 2: Verificar permisos del archivo

Asegúrate de que el archivo .htaccess tenga los permisos correctos:

  • Permisos recomendados: 444 (solo lectura)
  • Propietario: tu usuario de hosting

En cPanel o DirectAdmin, puedes cambiar los permisos haciendo clic derecho sobre el archivo y seleccionando "Permisos" o "Change Permissions".

Paso 3: Verificar que el problema esté resuelto

Visita cualquier página o entrada de tu sitio. Si todo funciona correctamente, el problema está resuelto.

WordPress en un subdirectorio

Si WordPress está instalado en un subdirectorio (ej. tudominio.com/blog/), modifica RewriteBase y la última regla:

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

# END WordPress

Reemplaza /blog/ con el nombre de tu subdirectorio.

Explicación de las directivas

Directiva Función
RewriteEngine On Activa el motor de reescritura de URLs.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] Preserva el encabezado de autorización HTTP para la API REST.
RewriteBase / Define la base para las reglas de reescritura.
RewriteRule ^index\.php$ - [L] Si la solicitud es para index.php, no hacer nada más.
RewriteCond %{REQUEST_FILENAME} !-f Condición: el archivo solicitado no existe físicamente.
RewriteCond %{REQUEST_FILENAME} !-d Condición: el directorio solicitado no existe físicamente.
RewriteRule . /index.php [L] Redirigir todas las solicitudes que cumplan las condiciones a index.php.

Solución de problemas

El error persiste después de añadir las directivas

  • Verifica que el archivo .htaccess esté en la raíz de WordPress (mismo directorio que wp-config.php).
  • Confirma que las directivas estén correctamente copiadas, sin espacios o caracteres adicionales.
  • Contacta a tu proveedor de hosting para verificar que el módulo mod_rewrite esté habilitado.

El archivo .htaccess se sobrescribe o modifica

Si el archivo .htaccess se sobrescribe después de añadir las directivas, esto puede indicar:

  • Un plugin interfiriendo: Algunos plugins de caché, seguridad o SEO modifican .htaccess. Revisa los plugins instalados recientemente o desactívalos temporalmente para identificar el causante.
  • Malware en el sitio: El malware frecuentemente modifica .htaccess para inyectar redirecciones maliciosas. Escanea tu sitio en busca de archivos infectados y revisa los logs de acceso en busca de actividad sospechosa.

Referencias