まだ作ったばかりで中身スッカスカです

エラーログにcanonical.phpの警告

エラーログにcanonical.phpの警告が…

Q
サーバーのエラーログにcanonical.phpの何行に問題が~ …と警告が。
A

PHP8になってから現れるようになった不具合です。

パーマリンクのURLの末尾にスラッシュ(/)がないと出ます。
WPの設定で「カスタム構造」にして末尾にスラッシュを書き加えます。

これで一応、警告は消えます。

PHPエラー

PHP8にしてからエラーログにPHPエラーが記録されるようになりました。
直ったように見えても、しばらくしてログを覗くとまた記録されてたり。

このようなエラーが日に数件くらい記録されます。

PHP Warning: Undefined array key “path” in /home/momokuromi/kuromin.net/public_html/wp-includes/canonical.php on line 619

canonical.phpにエラーがありパスが通らないのかと思ったら、そうでもない。
ネットで検索してみたら同じエラーで困ってる人が沢山いるようです。

原因

前述のサイトによるとURLのケツにスラッシュがないとエラーになるそうです。
パーマリンクは数字ベースで運用してますが、たしかにスラッシュがありません。

https://kuromin.net/archives/123

こんな事でエラーが起きるなんて、よく突き止めたものですね。(大感謝)

PHP8にしてからエラーが出始めたそうですが、ウチも同じです。
PHP7では平気だったのに、8にしたら503エラーも起きるようになりました。

PHP8はより厳格化されたとあったので、その影響でしょうか?
どうもPHP8は曲者で問題を抱えてる気がしてなりません。

解決方法

パーマリンクは変更しない方がいいのですが、スラッシュを付け足す事にしました。
下記のように「カスタム構造」を選択して最後にスラッシュを加えるだけです。

利用中の鯖にもよりますが、既存のリンクは修正しなくても大丈夫みたいです。
スラッシュなしのURLにアクセスするとスラッシュありのURLにリダイレクトされます。

修正後エラーは完全に消えてログにも一切記録されなくなりました。\(^o^)/

参考

送信中です

×

※コメントは最大500文字、100回まで送信できます

送信中です送信しました!