Los enlaces permanentes de WordPress no se quedan

8 minutos de lectura

avatar de usuario
zach smith

En varios momentos del día, mis enlaces permanentes de WP siguen rompiéndose. Cuando estoy usando permanentes personalizados, funciona, pero luego, algunas veces durante el día, arroja una página no encontrada. Lo arreglo configurando los permisos por defecto, luego vuelvo a personalizar y funciona bien.

Mi administrador del sistema no puede resolverlo. Con suerte, un gurú puede prestar algo de ayuda.

  • ¿Cuál es su patrón de enlace permanente personalizado?

    -George Claghorn

    17 de agosto de 2010 a las 19:30

  • ¿Dejan de funcionar todos o solo algunos? Si son solo algunos, dé algunos ejemplos.

    -Hugh Brackett

    17 de agosto de 2010 a las 19:39

  • @gclaghorn: blog/%scategory%/%postname%/ $hugh: solo las publicaciones dejan de funcionar; las páginas funcionan bien.

    – Zach Smith

    17 de agosto de 2010 a las 19:51

  • @HollerTrain: eso que está en la %categoría% no debería estar allí, ¿verdad? No puedo encontrar ninguna mención de una etiqueta %scategory% en los documentos de WP.

    -George Claghorn

    17 de agosto de 2010 a las 20:26


  • @gclaghorn: eso es personalizado por cliente ;( dudo que ese sea el problema.

    – Zach Smith

    17 de agosto de 2010 a las 20:28

El problema es, de hecho, lo más probable es que sCategoría Enlace permanente plug-in (el que te da /%scategory%/. Los 404 son algo comunes. Ir Opciones | enlaces permanentes página en Administrador del sitio y haga clic Guardar cambios para regenerar enlaces permanentes. La forma de confirmar esto es usar Enlaces permanentes predeterminados de WP para probar el comportamiento. Si todo va bien, es el sCategoría Enlace permanente.

Si esto no funciona, publique su .htaccess y eso nos ayudará a solucionar mejor los problemas.

  • El único problema es que no puedo usar enlaces permanentes predeterminados en un sitio en vivo como este debido a la cantidad de tráfico que recibimos, por lo que hace que probar cualquier opción sea muy difícil.

    – Zach Smith

    19 de octubre de 2010 a las 16:32

  • @HollerTrain. Eso es duro. Supongo que si hay un tiempo de inactividad en el tráfico, como las 2 am, eso tiene más sentido para algunas pruebas, pero dependiendo de cuánto tráfico reciba su blog, puede que no sea una opción. ¿Qué versión de sCategory estás usando? La razón es que la mayoría de los informes 404 son para versiones superiores a 0.3.0 (la versión actual es 0.6.2). ¿Has probado el Guardar cambios en Administrador del sitio a ver si eso regenera los enlaces y quita los 404s?

    – Todd principal

    19 de octubre de 2010 a las 17:36

  • @HollerTrain: De las otras respuestas y sus respuestas (como que .htaccess no se cambia), le animo a que analice más de cerca el problema de la sCategoría Enlace permanente plug-in como la causa aquí. Es un problema común con este complemento.

    – Todd principal

    21 de octubre de 2010 a las 22:54

  • @HollerTrain: Está atrasado en una instancia de prueba/desarrollo de su sitio cuando siente que no puede hacer cosas por temor a perturbar el tráfico.

    – John Mee

    22 de octubre de 2010 a las 2:26

  • @Otaku, ¿cómo puedo arreglar este complemento cuando todo nuestro sitio web se basa en estos permisos personalizados y, como tal, no puedo simplemente cambiar la forma en que se crean las URL de los artículos? ¿Cuáles son tus pensamientos?

    – Zach Smith

    22 de octubre de 2010 a las 15:15

Sospecharía de algo que sobrescribe periódicamente su archivo .htaccess. Cuando configura las opciones de enlace permanente, actualiza .htaccess. Si esas configuraciones se “pierden”, es posible que haya otra pieza de software ejecutándose en su sitio que esté jugando con el archivo .htaccess y eliminando o anulando la configuración de WordPress.

  • pero si está sobrescribiendo mi htaccess, ¿la configuración de enlace permanente en WP no reflejaría un cambio en la configuración de permisos? cuando no funciona, todavía dice que mis permanentes están configurados como personalizados

    – Zach Smith

    17 de agosto de 2010 a las 19:50

  • Estoy bastante seguro de que las opciones de enlace permanente de WP están almacenadas en la base de datos de WP… la pantalla no está “leyendo” el archivo .htaccess.

    – ahockley

    17 de agosto de 2010 a las 19:53

  • ¿Hay alguna manera de simplemente eliminar la opción de escribir/cambiar estos valores en htaccess para que nunca se puedan cambiar?

    – Zach Smith

    17 de agosto de 2010 a las 20:03

  • Su próximo paso es obtener una copia de .htaccess cuando esté funcionando, luego esperar a que las cosas salgan mal y ver si algo cambió (la fecha de modificación también debería cambiar). Si es diferente, el contenido de la versión “mala” puede llevarlo a lo que sea que lo esté cambiando.

    -Hugh Brackett

    17 de agosto de 2010 a las 21:07

  • Hugo, eres muy inteligente. Todavía está sucediendo, así que probaré esta opción y veré qué está cambiando.

    – Zach Smith

    24 de agosto de 2010 a las 20:11

Parece que algo más está cambiando automáticamente su archivo htaccess y sobrescribiendo la configuración del enlace permanente.

Lo que sugirió bvandrunen puede funcionar. De lo contrario, puede establecer la configuración de enlace permanente a lo que desee y luego cambiar inmediatamente los permisos del archivo htaccess para evitar que algo lo modifique. Yo sugeriría usar chmod 644.

Naturalmente, una mejor solución aún sería encontrar el script que está modificando su archivo htaccess y deshacerse de él… ¡pero esta solución al menos debería mantener sus enlaces permanentes funcionando!

  • Usé chmod 644 y sucedió dos veces ayer y una vez hoy, y no veo que la fecha de creación/modificación de htacess cambie cuando lo veo en ftp

    – Zach Smith

    21/10/2010 a las 21:31

  • Eso es extraño, porque la forma en que lo describiste sonaba como un problema con htaccess pero eso implica que htaccess no está cambiando… No estoy seguro de qué más podría ser sin estudiar la configuración individual de tu blog.

    – César

    22 de octubre de 2010 a las 0:41

  • Oh, espera, cuando dijiste que estabas recibiendo 404, ¿son las páginas de error 404 predeterminadas del servidor o un 404 de WordPress? (Si este último es el caso, se verá como el resto de su sitio en lugar de ser una simple página). Si es un WordPress 404, eso significa que el problema no podría ser con htaccess de todos modos; tiene que ver con que WordPress no maneja correctamente el enlace permanente. Siendo ese el caso, parecería ser causado por un complemento defectuoso; probablemente el complemento sCategory Permalink.

    – César

    22 de octubre de 2010 a las 0:44


  • cuando obtengo la página 404, es la página 404 de wordpress. Si el complemento sCategory Permalink es el culpable y tenemos un sitio que se ha construido sobre esa estructura durante el último año, ¿cuáles son mis opciones? No puedo usar una estructura diferente en este punto del sitio.

    – Zach Smith

    22 de octubre de 2010 a las 15:13

  • Ok, entonces htaccess definitivamente no es el problema, sino WordPress o un complemento, probablemente el complemento sCategory como se mencionó. No estoy familiarizado con este complemento pero, habiendo identificado esto como el problema, sugeriría abordar el problema con el autor del complemento. Si no puede arreglarlo o sugerir una solución; sus únicas opciones parecen ser encontrar un complemento de reemplazo compatible o, si no hay uno, escribir uno usted mismo.

    – César

    22 de octubre de 2010 a las 19:34

¿Cambian o no las fechas de creación/modificación de .htaccess? ¿Incluso si no ve cambios visibles en .htaccess?

Los enlaces permanentes se almacenan en la tabla wp_options en option_id 34 . Verifíquelos y luego verifíquelos después de que se produzca el cambio.

  1. Elimine la estructura de Permalink existente y configúrela como predeterminada.
  2. Elimine el archivo .htaccess actual.
  3. Purga el caché de tu sitio.
  4. Escriba un nuevo archivo .htaccess como sugirió @bvandrunen.
  5. Vuelva a crear su nueva estructura de enlaces permanentes.

Eso debería funcionar.

  • cuando dices ‘crea tu nueva estructura de enlace permanente’, ¿es solo hacer clic en ‘predeterminado’ y escribir mis permisos personalizados?

    – Zach Smith

    21 de octubre de 2010 a las 21:26

  • Configuración -> Enlaces permanentes -> Estructura personalizada: /blog/%scategory%/%postname%/

    – MT.

    21 de octubre de 2010 a las 23:34

  • Además, no olvide la barra inclinada “/” antes de “blog”

    – MT.

    21/10/2010 a las 23:35

avatar de usuario
Mansab Uppal

Puede intentar usar la directiva ‘try_files’ en el archivo de configuración de Nginx para su sitio web:

a) Abra el archivo de configuración presente en ‘/etc/nginx/sites-enabled/yoursite.conf’ o ‘/etc/nginx/conf.d/default.conf’

b) Luego agregue las siguientes líneas debajo del ubicación / bloquear:

try_files $uri $uri/ /index.php?$args;

c) Debe verse como:

location / {
    root   /var/www/html;
    index  index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;
}

También puede consultar Enlaces permanentes personalizados de WordPress y Nginx para obtener información detallada.

  • cuando dices ‘crea tu nueva estructura de enlace permanente’, ¿es solo hacer clic en ‘predeterminado’ y escribir mis permisos personalizados?

    – Zach Smith

    21 de octubre de 2010 a las 21:26

  • Configuración -> Enlaces permanentes -> Estructura personalizada: /blog/%scategory%/%postname%/

    – MT.

    21 de octubre de 2010 a las 23:34

  • Además, no olvide la barra inclinada “/” antes de “blog”

    – MT.

    21/10/2010 a las 23:35

avatar de usuario
geoff

Tendría que estar de acuerdo con @ahockley ya que tuve exactamente el mismo problema con mi blog de WordPress. Lo que pasa es que el .htaccess el archivo se sobrescribe y luego, cuando lo configura como personalizado y luego vuelve a su valor predeterminado, se corrige solo por un tiempo. Lo que tenía que hacer era algo como esto: (este es el valor predeterminado)

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Cambiar a:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# BEGIN WordPress

# END WordPress

Una vez que moví el # BEGIN WordPress fuera de los bloques, el problema se detuvo. Espero que esto ayude

¿Ha sido útil esta solución?