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.
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.
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.
| Causa | Cómo comprobarlo | Solución |
|---|---|---|
| Reglas de reescritura o falta de escritura | La 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 WordPress | El 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 ignorado | En 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 servir | El 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. |
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.
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'Regenerar las reglas
Lo primero que hay que probar, y con frecuencia lo último.
wp rewrite flush --hard wp rewrite list --format=count
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; }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 WordPressConfirme 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' {}
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.
¿Perdí mis puestos?
¿Por qué la página de inicio sigue funcionando?
He desminado las reglas y nada ha cambiado. ¿Ahora qué?
¿Podría un plugin haber causado esto?
Si el problema era otro.
Estos errores pueden parecerse en el navegador.