WordPress me está dando la página 404 no encontrada para todas las páginas excepto la página de inicio

115

De repente, voy a mi sitio web de WordPress y todas las páginas me dan una página 404 no encontrada. Supongo que el problema radica en la estructura del enlace permanente, que podría jurar que no toqué. La configuración del enlace permanente está en "mes y nombre".

He investigado casos similares de este problema en línea y mucho de esto tiene que ver con el .htaccessarchivo. Intenté encontrar, pero no puedo. ¿Quizás se eliminó de alguna manera? Dónde se supone que debe estar ubicado.

Cualquier sugerencia será de ayuda

y, por supuesto, puedo ver archivos ocultos.

Adán
fuente
Sugiero que pregunte esto también en wordpress.stackexchange.com .
James Wiseman

Respuestas:

95

.htaccess es un archivo oculto, por lo que debe configurar todos los archivos como visibles en su ftp.

Le sugiero que devuelva su estructura de enlace permanente a la predeterminada (? P = ID) para asegurarse de que .htaccess es el problema.

Después de eso, simplemente puede volver a establecer la estructura "mes y nombre" y ver si funciona.

PD: ¿Ha actualizado a 3.1? He visto a algunas personas con problemas con los complementos en este caso.

Rochester Oliveira
fuente
1
sí, he mostrado archivos ocultos. He cambiado de forma predeterminada a permanente y funciona de forma predeterminada. Además, ¿WordPress se actualiza a sí mismo o algo así? Noto que cuando inicio sesión, tengo una nueva barra de tareas de administración en mi sitio web, que no tenía antes. No sé cómo llegó allí.
Adam
alguien actualizó por error a 3.1, por lo que entró en conflicto con un complemento
Adam
1
La falta .htaccesstambién podría llevar a este problema, independientemente de lo que corrija el enlace permanente, así que verifique que primero, no esté oculto ni falte
Osify
1
Simplemente inicie sesión en el administrador de WordPress y guarde los parmalinks nuevamente. Esto generará un archivo .htaccess o actualizará el existente.
Keyur Patel
Intenté usar admin y actualizar manualmente el archivo .htaccess pero sigo teniendo el mismo problema. Deshabilite el complemento también pero no solucione el problema del enlace permanente.
Jaymin
56

Básicamente, el archivo .htaccess debería existir y el httpd.conf debería ser correcto.

En mi caso, cambié el archivo /etc/apache2/apache2.conf en la sección:

<Directory "/var/www/html">

La línea cambiada es:

AllowOverride None

a

AllowOverride All

Y reinicie el servidor web con

systemctl restart apache2
georgeos
fuente
1
gracias, eso ayudó. En mi caso, faltaba la configuración AllowOverride.
trapo
1
Esto me lo arregló también. Estoy usando scotchbox vagabundo por lo que vale.
Matt Kaye
2
Este es casi siempre el problema. Debería ser la mejor respuesta.
Noel Baron
Esto me corrigió el problema. Debería ser la respuesta aceptada
Charles.
52

La fijación de este problema es muy simple si se estaba utilizando los enlaces permanentes que no sean el defaultcomo Day and name, Month and name, Numeric, Post nameo Custom Structure, sólo es necesario

Inicie sesión en su área de administración: Settings > Permalinksque debería ser:http://yoursite.com/wp-admin/options-permalink.php

Elija la Defaultconfiguración de enlace permanente , luego guarde los cambios

Entonces tú puedes devolverlo nuevamente a su otra opción anterior de enlace permanente o mantenerlo defaultcomo desee

Tenga en cuenta que este problema puede ocurrir cuando mueve su sitio de un dominio o ubicación a otro.

usama sulaiman
fuente
1
Esto me ayudó un poco, tuve algunos errores en la base de datos y luego todas mis páginas eran 404. ¡Cambiar la opción de enlace permanente a otra opción (como simple) y luego volver a la opción predeterminada solucionó todos mis enlaces!
PaulBGD
Me alegro de escuchar eso :)
usama sulaiman
2
Respuesta perfecta +100
handiansom
¿Cómo puedo volver a la configuración predeterminada de enlace permanente cuando ni siquiera mysite.com/wp-adminfunciona?
J86
Respuesta perfecta +10086
continuación,
29

Si el comportamiento predeterminado ( example.com/?p=42) está funcionando, debe:

  • Cambie a su estilo de enlace permanente preferido: Admin: Settings > Permalinksy haga clic en Guardar. En algún momento soluciona el problema. Si no fue así:
  • Verifique que el archivo /path/to/wordpress/.htaccesshaya sido modificado y ahora incluya la línea RewriteEngine On. Si no incluye la línea, es un problema de permisos de Wordpress.
  • Verifique que el módulo 'reescribir' esté cargado: cree un archivo PHP con

    <?php
      phpinfo()
    ?>

    en él, ábralo en el navegador y busque mod_rewrite. Debería estar en la sección 'Módulos cargados'. Si no es así, habilítelo - Mire su index.htmlarchivo predeterminado de Apache para obtener más detalles - en Ubuntu, lo hace con el ayudante a2enmod.

  • Verifique que el servidor apache esté mirando el .htaccessarchivo. abierta httpd.conf- o es la alternativa de Ubuntu, /etc/apache2/apache2.conf. En él, deberías tener algo como

    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
  • Después de realizar estos cambios, no olvide reiniciar su servidor apache. sudo service apache2 restart

tsvikas
fuente
20

SI todo esto no funciona, su .htaccess es correcto y el truco de enlaces permanentes no funcionó, es posible que no haya habilitado su mod de reescritura apache2 .

Ejecuté esto y mi problema se resolvió:

 sudo a2enmod rewrite 
David Valenza
fuente
Busque mod_rewriteen la phpinfo();página para comprobar si ha habilitado. Está en Loaded Modulesofapache2
vanduc1102
9

Dentro de la interfaz de administración de WordPress, haga lo siguiente:

  1. Ir a la configuración de administrador

  2. Haga clic en el enlace permanente y seleccione el nombre de la publicación en el botón de opción.

  3. Desplácese hacia abajo y verá el .htaccesscódigo aquí como.

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
  4. Copie el código y péguelo en el .htaccessarchivo.
Mahesh singh chouhan
fuente
1
¿Dónde lo encuentro? No hay nada como esto en los enlaces permanentes.
Boris_yo
@Boris_yo Hasta donde yo sé, las reglas se mostrarán solo si su htaccessarchivo se notpuede escribir ... si es wordpress simplemente lo escribirá él mismo ...
Obmerk Kronen
1
¡Esta respuesta es asombrosa! y nunca lo sabrá a menos que use WP en Linux. Muchas gracias
Mayeenul Islam
7

Este error se debe a la desactivación de la modificación de reescritura en el documento httpd.conf de Apache, simplemente descomente y disfrute de los enlaces permanentes amigables con seo

Asif Khan
fuente
4
  • Compruebe que el directorio en .htaccess sea el correcto
  • Compruebe que los campos "siteurl" y "home" sean los correctos
José Carlos
fuente
1
Para mí, la casa era el problema. Lo arreglo y todo vuelve al trabajo. Obrithankyou José Carlos.
Tiago Gouvêa
4

Tuvimos el mismo problema y lo solucionamos revisando el error.log de nuestro host virtual. Encontramos el siguiente mensaje:

AH00670: Las opciones FollowSymLinks y SymLinksIfOwnerMatch están desactivadas, por lo que la directiva RewriteRule también está prohibida debido a su capacidad similar para eludir las restricciones de directorio: / srv / www / htdocs / wp-intranet /

La solución fue establecer Options Ally AllowOverride Allen nuestra configuración de host virtual.

Negro
fuente
3

Si tiene acceso FTP a su cuenta:

Primero, inicie sesión en su wp-admin y vaya a Configuración> Enlaces permanentes

Debería ver algo en la parte inferior que dice:

"Si su archivo .htaccess fuera editable, podríamos hacerlo automáticamente, pero no es así, así que estas son las reglas mod_rewrite que debería tener en su archivo .htaccess. Haga clic en el campo y presione CTRL + a para seleccionar todo".

Si esto es cierto, haga lo siguiente:

  1. Vaya a las preferencias de su cliente FTP y asegúrese de que se muestren los archivos ocultos (varía según su cliente FTP). Si no lo hace, no podrá encontrar su archivo htaccess.

  2. Vaya a la carpeta donde se encuentran sus directorios wp-admin, wp-content, wp-includes. Busque el archivo .htaccess. Si existe, vaya al paso 4

  3. Si no existe, cree un nuevo archivo en blanco en su programa FTP llamado .htaccess

  4. Cambie el CHMOD de su archivo .htaccess a 666 (su preferencia sobre cómo desea hacer esto)

  5. Regrese a su página de Permalinks y edite la estructura de enlaces que desee. ¡El problema debe resolverse!

  6. Asegúrese de cambiar el chmod del archivo htaccess de nuevo a 644 una vez que haya terminado.

¡Acabo de tener el mismo problema y pareció solucionarlo instantáneamente! ¡Buena suerte!

JEFF B
fuente
"mod_rewrite" este era el problema, ¡olvidé habilitarlo! Gracias :)
Chemaclass
3

La mayoría de las veces, este problema se soluciona simplemente visitando la página Configuración -> Enlace permanente en el administrador de WordPress y haga clic en Guardar (como ya se han señalado varias otras respuestas). Cuando se accede a esta página, WordPress reescribe las directivas en el .htaccessarchivo que mágicamente soluciona el problema. El problema suele ocurrir después de mover un sitio (el sitio se rompe porque el.htaccess se queda atrás o la configuración debe actualizarse).

Si WordPress no tiene los permisos adecuados para escribir el .htaccessarchivo, aparecerá un aviso en la parte superior de la página y más instrucciones en la parte inferior cuando se guarden las configuraciones. En este caso, debe editar el .htaccessarchivo usted mismo o, mejor, corregir los permisos en ese archivo. El archivo está en la raíz de la instalación de WordPress. cden el directorio y sudo chmod 644 .htaccess. También es posible que desee verificar si el archivo pertenece al grupo correcto y el cambio que se necesita con chown. Pregúntele a su proveedor de alojamiento si no sabe cómo hacerlo.

Si tiene un alojamiento compartido, probablemente sea todo lo que pueda hacer. Si aún tiene el problema, es posible que desee hablar con el soporte de su proveedor de alojamiento. De lo contrario, asegúrese de que el uso de .htaccessarchivos esté habilitado en el servidor, como ya sugirió @georgeos. Tenga en cuenta que httpd.confno siempre se usa ( Ubuntu indica que está obsoleto, pero los documentos oficiales de Apache todavía dicen que a menudo es el archivo de configuración principal ). /etc/httpd/conf/httpd.confy /etc/apache2/apache2.confparecen ser los lugares más comunes para este archivo. Busque el bloque de la carpeta pública, por lo general, <Directory /var/www/>y asegúrese de que la AllowOverridedirectiva esté configurada en All. Si está configurado en None, .htaccessel servidor simplemente ignora el archivo.

mrtnmgs
fuente
2

Es posible que no se permita .htaccess en la configuración del servidor web. Establecer los enlaces permanentes predeterminados funcionaría en ese caso.

Fanky
fuente
1

Caso 1: - Pensemos si migrar el sitio de un alojamiento a otro alojamiento si vemos este tipo de problema.

Solución: - Simplemente vaya al código del archivo .htaccess de la copia del servidor anterior y luego páselo en el archivo .htaccess del nuevo servidor. 99% lo haré.

Navruk
fuente
0

Tengo el mismo problema, así que elimino el Apache y lo hago de nuevo y el problema se resolvió.

boomz
fuente
0

Simplemente navegue a Configuración-> Enlace permanente en su tablero y luego al botón Guardar cambios en el último. \

Deepak Sharma
fuente
0

Si su instalación de WordPress está en una subcarpeta (por ejemplo, https://www.example.com/subfolder ) cambie esta línea en su WordPress.htaccess

RewriteRule . /index.php [L]

a

RewriteRule . /subfolder/index.php [L]

Al hacerlo, le está diciendo al servidor que busque WordPress index.phpen la carpeta de WordPress (por ejemplo, https://www.example.com/subfolder ) en lugar de en la carpeta pública (por ejemplo, https://www.example.com ).

Guido Walter Pettinari
fuente
0

Acabo de cambiar el enlace permanente a 'mes y día' de todas las publicaciones al establecer> enlace permanente.

Ahora todas las publicaciones están abiertas y funcionando bien.

Nuevamente, cambié el nombre de todas las publicaciones a su enlace permanente real. De nuevo funciona bien.

Este método funcionó para mi :-)

Shani Deshwal
fuente
0

Para usuarios de nginx

Utilice lo siguiente en su archivo conf para su sitio (normalmente /etc/nginx/sites-available/example.com)

location / { try_files $uri $uri/ /index.php?q=$uri&$args; }

Esto transfiere todas las solicitudes de enlaces permanentes a index.php con una cadena URI y argumentos proporcionados. Haga una systemctl reload nginxpara ver los cambios y los enlaces que no pertenecen a la página de inicio deberían cargarse.

ABCTaylor
fuente
0

Antes de intentar hacer cambios en la configuración del servidor o el enlace permanente, verifique su archivo .htaccess. Esto es principalmente un problema de archivo .htaccess corrupto o en blanco. Restablecer el archivo htaccess al valor predeterminado

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Mustafa sabir
fuente
0

después de 2 largos días, la solución fue agregar options +FollowSymLinksa la parte superior de mi .htaccessarchivo.

Ahmad Ali
fuente
-1

Tuve este problema no hace mucho tiempo. Había restablecido mi enlace permanente al valor predeterminado o simplemente lo había guardado, actualicé temas / núcleo a (4.7.4) / complementos, desactivé todos los complementos, cambié al tema predeterminado, base de datos optimizada, .htaccess ya está predeterminado, verifiqué los permisos de archivo, mod_rewrite está activado .

Hasta ahora nada funciona, lo que funciona son las publicaciones, la página nueva, la página / contacto EXCEPTO las páginas antiguas.

Básicamente, las páginas / URL que no funcionan son:

/breeding
/training
/training/*
/breeding/*

Ultimate, encontré estos archivos en la carpeta raíz:

/breeding.php y /training.php

Cambié el nombre de ambos archivos y las páginas anteriores funcionaron.

Loreto Gabawa Jr.
fuente