WordPress | 修复 canonical.php 报错问题

问题

Typecho 迁移回 WordPress 后,出现了一个比较奇怪的问题:访问 https://www.sizau.com/page/1 时,会出现以下报错,从而导致页面加载异常:

Warning: Undefined array key "path" in /wp-includes/canonical.php on line 619

这个问题似乎是因为伪静态底层逻辑上并不允许(同时也不期望用户会)访问 /page/1。而我恰好是从 Typecho 迁移回来的,而部分搜索引擎把这个页面索引了,因此非常有必要修复这个问题。

修复

可以通过修改伪静态配置或者修改 php 文件来修正这个问题。

修改伪静态配置

如果使用的是 Apache,在伪静态配置中添加 RewriteRule ^page/1/?$ / [R=301,L] 即可。

当前站点使用的是 OpenResty,写法为 rewrite ^/page/1/?$ / permanent;,略有不同。

修改 php 文件

这个问题也可以在 WordPress 代码层面修复,不过需要考虑到版本更新可能需要重新修改的问题。

定位到第 619 行:

$redirect['path'] = preg_replace( '|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path'] );

在它的前面添加:

if ( ! isset( $redirect['path'] ) ) {
    $redirect['path'] = '/';
}

确保 $redirect[‘path’] 存在,避免报错。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇