エラーログに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回まで送信できます