一些帖子返回404而不是显示帖子

时间:2013-01-23 作者:zarprey

我的Wordpress安装有问题。当我尝试转到他们的永久链接时,我的一些帖子突然返回404个错误。我的帖子名称都是数字,当我的帖子数量超过1000条时,这种情况就开始出现了。

例如,这篇文章可以正常工作:http://kidlolly.com/post/999/

但这个返回404:http://kidlolly.com/post/1000/

有什么线索可能是问题的根源吗?我怀疑可能是我的。htaccess文件,但我承认我对它不是很在行。htaccess,所以我不太确定要查找什么。我正在运行一些影响的“安全”插件。htaccess,但由于1-999帖子没有问题,我不知道该找什么。

我认为问题可能就在这里。htaccess文件(如果确实是这样的话),有人能帮我解释一下吗?

    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]
提前感谢!

1 个回复
最合适的回答,由SO网友:Milo 整理而成

正如我在评论中提到的,日期重写规则是将你的帖子永久链接,并尝试加载一年的存档,而不是加载你的单个帖子。由于您似乎没有在站点上使用日期URL,因此可以更改日期结构,使其不再冲突。将此添加到主题functions.php 文件,然后访问Settings > Permalinks 刷新重写规则的管理页面:

function wpa82820_date_structure(){
    global $wp_rewrite;
    $wp_rewrite->date_structure = \'date/%year%/%monthnum%/%day%\';
}
add_action( \'init\', \'wpa82820_date_structure\' );
此更改日期URL/2013/01/23//date/2013/01/23/ 因此,它们不再与4位数的单柱永久链接冲突。

结束

相关推荐

NEXT_POSTS_LINK()仅适用于原始的$wp_Query

我有一个自定义模板,我想显示分页的博客文章。这是我的文件的开头:$wp_query = new WP_Query($args); if($wp_query->have_posts()){ while($wp_query->have_posts()){ $wp_query->the_post(); //something... <?php next_posts_link(\'Older Entri