Algunas publicaciones que devuelven 404 en lugar de mostrar publicaciones

2

Estoy teniendo un problema con mi instalación de Wordpress. De repente, algunas de mis publicaciones devuelven errores 404 cuando intento ir a su enlace permanente. Los nombres de mis publicaciones son todos números y esto comenzó a suceder cuando mis publicaciones numeradas superaban los 1000.

Por ejemplo, esta publicación funciona correctamente: enlace

Pero este devuelve un 404: enlace

¿Alguna pista de cuál podría ser la raíz del problema? Sospecho que tal vez mi archivo .htaccess, pero admito que no soy muy inteligente con .htaccess, así que no estoy muy seguro de qué buscar. Estoy ejecutando algunos complementos de "seguridad" que afectan al .htaccess pero, como no es un problema para las publicaciones 1-999, no estoy seguro de qué buscar.

Aquí es donde creo que el problema podría estar en el archivo .htaccess (si ese es el caso), ¿alguien puede ayudarme a interpretarlo?

    RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(bash|git|hg|log|svn|swp|cvs) [NC,OR]
    RewriteCond %{QUERY_STRING} etc/passwd [NC,OR]
    RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
    RewriteCond %{QUERY_STRING} ftp\:  [NC,OR]
    RewriteCond %{QUERY_STRING} http\:  [NC,OR]
    RewriteCond %{QUERY_STRING} https\:  [NC,OR]
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
    RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|ê|"|;|\?|\*|=$).* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(&#x22;|&#x27;|&#x3C;|&#x3E;|&#x5C;|&#x7B;|&#x7C;).* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(request|select|concat|insert|union|declare).* [NC]
    RewriteCond %{QUERY_STRING} !^loggedout=true
    RewriteCond %{QUERY_STRING} !^action=rp
    RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
    RewriteCond %{HTTP_REFERER} !^http://maps\.googleapis\.com(.*)$
    RewriteRule ^(.*)$ - [F,L]

Gracias de antemano!

    
pregunta zarprey 23.01.2013 - 18:27

1 respuesta

4

Como mencioné en mi comentario, la regla de reescritura de la fecha es recoger tu enlace permanente de la publicación e intentar cargar un archivo de un año en lugar de tu única publicación. Como parece que no usa las URL de fecha en su sitio, puede cambiar la estructura de la fecha para que ya no se produzcan conflictos. Agregue esto al archivo functions.php de su tema, luego visite la página Settings > Permalinks en Admin para vaciar las reglas de reescritura:

function wpa82820_date_structure(){
    global $wp_rewrite;
    $wp_rewrite->date_structure = 'date/%year%/%monthnum%/%day%';
}
add_action( 'init', 'wpa82820_date_structure' );

Esto cambia las URL de fecha de /2013/01/23/ a /date/2013/01/23/ para que ya no coincidan con los enlaces permanentes de 4 dígitos de la publicación.

    
respondido por el Milo 23.01.2013 - 19:52

Lea otras preguntas en las etiquetas