¿Por qué WordPress 3.0.4 sigue eliminando el contenido del archivo .htaccess?

2

Acabo de instalar WordPress 3.0.4 en un servidor alojado GoDaddy. Y he tenido un problema con mi archivo .htaccess. Por alguna razón, WordPress borra automáticamente todos los ajustes de configuración de mod_rewrite en el archivo .htaccess cada vez que veo la página de administración de WP para configurar los enlaces permanentes. Eliminar el archivo .htaccess un poco anula el propósito de esa página.

He podido crear una solución al solo ingresar manualmente las configuraciones en el archivo .htaccess y nunca visitar la página de configuración del enlace permanente. Pero esto no parece una buena solución.

¿Alguien puede compartir pensamientos sobre lo que podría estar causando esto?

Gracias! David

    
pregunta EAMann 08.02.2011 - 10:58

3 respuestas

4

Algo más está sucediendo aquí. Wordpress no borra el contenido del archivo .htaccess cuando escribe nuevos enlaces permanentes; agrega la nueva estructura de enlace permanente al final del archivo.

¿Tiene algún otro código o complemento que use .htaccess? ¿Está en un servidor Windows que no admite la reescritura de mod de forma nativa y, como resultado, requiere otras formas de habilitar la reescritura de mod y podría ser la causa del borrado?

Si desea evitar que WP escriba / agregue al archivo .htaccess, establezca los enlaces permanentes, realice sus propios cambios y luego configure los permisos .htaccess en 444, y luego puede ver la página de administración de enlaces permanentes sin que WP se agregue automáticamente a el archivo. Esto es lo que hago.

    
respondido por el markratledge 08.02.2011 - 15:40
1

WordPress siempre intenta escribir el archivo .htaccess cuando visita la página Permalinks , incluso cuando no hay nada que escribir (para asegurarse de que las reglas antiguas no se quedan). Esto sucede en save_mod_rewrite_rules() , que se llama desde $wp_rewrite->flush_rules() si el% co_de El parámetro% es $hard .

Todo lo que se encuentra entre las líneas true y # BEGIN WordPress es la salida de # END WordPress . En cuanto a esa función, solo hay un número limitado de casos en los que no devolvería nada:

  • $wp_rewrite->mod_rewrite_rules() devuelve $wp_rewrite->using_permalinks() , que es el caso si la estructura del enlace permanente está vacía (si los enlaces permanentes están deshabilitados)
  • el false o mod_rewrite_rules no devuelve nada. Esto puede suceder si un complemento piensa que son acciones y no filtros, y por lo tanto se olvida de devolver cualquier cosa.

Intentaría llamar a rewrite_rules y vería qué devuelve.

    
respondido por el Jan Fabry 10.02.2011 - 17:39
0

Gracias, @Jan ... ¡Resolví un problema mío de una semana! .htaccess siguió siendo sobrescrito (en realidad dañado e hinchado con configuraciones de WP repetitivas) ... pensé que era mi complemento de almacenamiento en caché pero descubrí que es mi functions.php donde configuré una taxonomía personalizada y uso flush_rewrite_rules(); ... configurándolo en flush_rewrite_rules( false ); lo convierte en un "lavado suave" según WP Codex y esto resuelve mi problema con htaccess! Un centenar de bendiciones para ti

    
respondido por el Jooooooooe 24.01.2012 - 06:39

Lea otras preguntas en las etiquetas