Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress将非类别页面/page/nnn重定向到其规范URL_Php_Wordpress_.htaccess_Canonical Link - Fatal编程技术网

Php Wordpress将非类别页面/page/nnn重定向到其规范URL

Php Wordpress将非类别页面/page/nnn重定向到其规范URL,php,wordpress,.htaccess,canonical-link,Php,Wordpress,.htaccess,Canonical Link,我似乎有一个奇怪的问题,我发现在几乎所有其他Wordpress网站 假设您已将博客主页设置为静态WP页面/myhome。你有一个单独的博客/blog页面 现在,这很好,应该是: /blog /blog/page/2 /blog/page/3 /blog/page/4 但是,对于所有其他页面,例如关于我们的/这些链接也有效: /about-us/page/2 /about-us/page/3 /about-us/page/4 并显示/关于我们页面的内容 我的问题是/about-us/page/

我似乎有一个奇怪的问题,我发现在几乎所有其他Wordpress网站

假设您已将博客主页设置为静态WP页面
/myhome
。你有一个单独的博客
/blog
页面

现在,这很好,应该是:

/blog
/blog/page/2
/blog/page/3
/blog/page/4
但是,对于所有其他页面,例如关于我们的
/这些链接也有效:

/about-us/page/2
/about-us/page/3
/about-us/page/4
并显示
/关于我们
页面的内容

我的问题是
/about-us/page/2
应该理想地重定向到
/about-us
(这是规范的URL),因为除了
/blog
之外,任何其他页面都没有分页


我错过了什么?这似乎发生在我检查过的几乎所有网站上,从SEO的角度来看,这确实令人沮丧。

这不是正常的WorpAddress行为,如果页面未启用分页,则不应接受页面参数。刚刚在Wordpress页面上测试过,
/mypage/page/2
给出了404

这可能与你的主题以及如何查询帖子有关。例如在主题文件中查找每页的
posts\u
numberposts
,并找到与页面相关的查询。然后将值更改为
-1
,以禁用分页

另一个解决方案是重定向所有分页URL(博客除外)-这在functions.php中有:


这是有意为之。多年来,WordPress重写变得越来越复杂,许多插件使用页面的
端点(通常带有模板和自定义查询)-重定向带来了潜在的痛苦

长话短说,反正没关系。WordPress为页面添加了新功能,因此无需担心重复内容

更新:对于希望忽略潜在风险的本地化情况,这将规范化所有页面URL-注意,它不会检查页面是否实际分页(即使用
quicktag),如果使用它,将破坏此功能

function wpse_199180_canonical_pages( $wp ) {
    if ( ! is_admin() && is_page() && isset( $wp->query_vars['paged'] ) ) {
        wp_redirect( get_permalink( get_queried_object() ), 301 );
        exit;
    }
}

add_action( 'wp', 'wpse_199180_canonical_pages' );

好吧,为什么要投否决票?我没有提到你也可以选择htaccess重定向。htaccess将是艰难的手动操作,因为我可以有一些页面,如
博客
新闻
,等等。在这些页面中,我希望分页工作,而在所有其他情况下都不工作。然后,每当添加新的此类页面时,我将始终需要为客户提供支持。
function wpse_199180_canonical_pages( $wp ) {
    if ( ! is_admin() && is_page() && isset( $wp->query_vars['paged'] ) ) {
        wp_redirect( get_permalink( get_queried_object() ), 301 );
        exit;
    }
}

add_action( 'wp', 'wpse_199180_canonical_pages' );