NuevoBlack Friday: 50 % de descuento en tu primer pago
Solución de problemas de WordPress

404 en cada página excepto en la página principal

Un patrón muy específico con una lista muy corta de causas. Sus publicaciones todavía existen; el router delante de ellos no está enrutándose.

404 Not Found — the requested page could not be found.

Respuesta breve

La página principal es la URL única que no necesita una regla de reescritura, por lo que es el único sobreviviente. Confirme pidiendo un post con una cadena de consulta en lugar de su permalink — si eso carga, el contenido está bien y la capa de reescritura es todo el problema.

Diagnóstico

Las causas más probables primero.

Revisa la lista en orden. Cada comprobación permite confirmar o descartar una causa antes de hacer cambios: las soluciones son distintas y adivinar cuesta más que ejecutar un comando.

CausaCómo comprobarloSolución
Reglas de reescritura o falta de escrituraLa forma de búsqueda de una carga de correo y el permalink bonito no. Nada sobre el contenido difiere entre las dos solicitudes.Regenerar las reglas. Salvar la configuración de permalink hace esto a través de la interfaz; en la línea de comandos es una sola llamada.
El servidor web no envía caminos desconocidos a WordPressEl 404 es la propia página del servidor web en lugar de la del tema. WordPress nunca corrió, por lo que no puede haber producido.Agregue el contrabajo del controlador delantero para que cualquier camino que no sea un archivo real se entregue a index.php. Sin él sólo la raíz del documento resuelve.
PermitOverride está apagado así que .htaccess es ignoradoEn Apache, el archivo existe y es correcto y cambiarlo no tiene ningún efecto en absoluto.Permitir PermitirOverride para el directorio, o mover las reglas equivalentes en el host virtual donde siempre se leen.
Una estructura de permalink el sitio no puede servirEl problema comenzó inmediatamente después de que la estructura de permalink cambiara, y revertir a los permalinks simples restaura todo.Escoge una estructura y regenera las reglas. Una categoría líder o base de post-tipo personalizado que colisiona con un camino de página existente es la trampa habitual.
Guía

Solución paso a paso.

Los comandos requieren WP-CLI y acceso a la consola. Si no los tienes, cada paso explica cómo hacer lo mismo desde el panel o por SFTP.

  1. Demostrar el contenido sigue ahí

    Si esto carga, nada se pierde y la fijación está enteramente en la capa de reescritura.

    curl -sS -o /dev/null -w '%{http_code}\n' 'https://example.com/?p=1'
  2. Regenerar las reglas

    Lo primero que hay que probar, y con frecuencia lo último.

    wp rewrite flush --hard
    wp rewrite list --format=count
  3. Revisar el servidor en realidad cae de nuevo a index.php

    Esta es la forma nginx. Sin ella, sólo se sirven caminos que existen en el disco.

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
  4. Restaurar un conocido-bueno.htaccess en Apache

    El bloque de acciones. Si escribirlo no cambia nada, AllowOverride está apagado y el archivo está siendo ignorado.

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
  5. Confirme un verdadero permalink ahora resuelve

    Pida WordPress para una URL que se generó, por lo que no hay posibilidad de probar un camino que nunca existió.

    wp post list --post_type=post --posts_per_page=1 --field=url | xargs -I{} curl -sS -o /dev/null -w '%{http_code}\n' {}
En MagicWP

De esto se encarga la plataforma.

El contrabajo del controlador frontal es parte de la configuración nginx de cada sitio desde el momento en que se crea, por lo que la versión más común de este — un servidor que sólo sirve archivos que existen en el disco — no puede ocurrir. No hay .htaccess en la ruta de solicitud a ser ignorado, sobrescrito por un plugin, o perdido en una restauración, porque las reglas viven en el propio servidor de la web en lugar de un archivo.

Preguntas frecuentes

Preguntas frecuentes.

¿Perdí mis puestos?
No. La prueba de búsqueda lo demuestra: el mismo post que 404s en su permalink cargas por ID. Sólo la asignación de URL a contenido se rompe.
¿Por qué la página de inicio sigue funcionando?
Es la raíz de documento, por lo que no necesita ninguna regla de reescritura para ser encontrada. Cada otra URL depende del conjunto de reglas que falta, que es exactamente por qué el fracaso tiene esta forma.
He desminado las reglas y nada ha cambiado. ¿Ahora qué?
Eso apunta una capa hacia fuera: el servidor no está dando caminos desconocidos a WordPress en absoluto. Flushing reescribe lo que WordPress sabe, que es inútil si la solicitud nunca llega a ella.
¿Podría un plugin haber causado esto?
Sí — todo lo que registra un tipo de post personalizado o taxonomía añade reglas, y añadir una sin rociar deja las nuevas URLs 404ing hasta que las reglas sean reconstruidas.
Errores relacionados

Si el problema era otro.

Estos errores pueden parecerse en el navegador.