Love2Labo

日常の些細なことやどうでもいいことをあなたに。たまに Wordpress カスタマイズ。

WordPress

[WP]ピンバックで日本語パーマリンクのリンクエラー(400)が出たときの対処法

更新日:

wp_pingback_error

あめたま(@ametama_l2l)です、こんばんわ。

パーマリンク設定で日本語URLは避けた方がいいよっていうお話を書きました。

[WP]パーマリンクはどう設定すべき?私の考える最適解はこれだ!

理由は記事中に書きましたが、私が考える一番の弊害はせっかくピンバックを飛ばしてもらったのに、リンクエラー(400:Bad Request)が出てしまうことです。

一番の対処法は日本語パーマリンクを止めることですが、それは相手次第。

今回は受け取った側で出来る対処法をご説明します。

 

スポンサーリンク

ピンバックって何?

まずはピンバックについて簡単にご説明します。

ピンバックはWordPressの標準機能で、一言で言えば、「リンクしたよ!」っていう通知機能です。

例えばAさんが私のブログ記事を紹介しリンクしてくれると、リンクされた私のブログ記事のコメント欄に「Aさんが紹介してるよ」というコメントが付きます。

wp_pingback_error_01

もうちょっと細かい話が知りたい方はこちらをどうぞ(*´艸`)ウフフ

[WP]ピンバックでリンクしたことを相手にお知らせしちゃう方法

 

エラーってどうなるの?

リンクエラーになるのは受け取った側からリンク先に飛ぶときです。

上の例だと、私のブログから紹介してくれたAさんのサイトに飛ぼうとしたときにエラーが発生します。

wp_pingback_error_02

まぁこれって結局相手のせいだし、自分は困らないので、ほっといてもいいっちゃいいんですが。

せっかく紹介してもらってるのに、リンクが飛べなかったら申し訳ないですよね!(`・ω・´)キッ

 

リンクエラー(400:Bad Request)について

ここはちょっと細かい話になります。

着いていけねーよ!って方。読み飛ばしてもらって大丈夫です!

対処法だけ書いてもいいんですが、理由も書きたいので書いちゃいます(ノ´∀`*)

原因はピンバックのURLの文字制限

ピンバックのURLには200バイトまでという文字数制限があります。

では200バイトを超えるとどうなるのか?

例えば、こんなURLがあったとします。

http://www.love2labo.com/%e3%80%90%e8%a1%9d%e6%92%83%e3%82%b9%e3%82%af%e3%83%bc%e3%83%97%e3%80%91%e3%83%88%e3%83%ac%e3%83%bc%e3%83%89%e3%83%9e%e3%83%bc%e3%82%af%e3%81%ae%e3%83%a1%e3%82%ac%e3%83%8d%e3%81%8c%e5%ae%9f%e3%81%af%e4%bc%8a%e9%81%94%ef%bc%9f%ef%bc%81

※存在しないURLなので、コピペしてもページは見れません。404エラーが表示されて正常です。

このURLは全部で259バイトですが、ピンバックは200バイトまでなので、コメント欄からのリンク先URLはこうなります。

http://www.love2labo.com/%e3%80%90%e8%a1%9d%e6%92%83%e3%82%b9%e3%82%af%e3%83%bc%e3%83%97%e3%80%91%e3%83%88%e3%83%ac%e3%83%bc%e3%83%89%e3%83%9e%e3%83%bc%e3%82%af%e3%81%ae%e3%83%a1%e3%82%ac%e3%83%8d%e3%

こちらも同様に存在しないページですが、このURLをブラウザのアドレス欄にコピペして確認すると、「Bad Request」になります。

リンクエラー(400:Bad Request)の原因

リンクエラー(400:Bad Request)というのはどういうエラーかというと、不正なリクエストです。

URLは本来1バイト文字で構成されます。ですが日本語URLは2バイト文字(マルチバイトURL)。

マルチバイトURLはバイト単位で変換されます。

上記の例だと、2バイト文字はUTF-8でエンコードされています。UTF-8エンコードで表現できない文字が含まれているためにエラーが発生しています。

エラーが出るURLを見ると、最後が「%」で終わっています。この部分が原因です。

UTF-8は「%**」と%+2桁の16進数で表現されます。そのため末尾が「%」、「%+1桁」の場合このエラーが発生してしまいます。

 

ピンバックURLで「400:Bad Request」が出たときの対処法

お待たせしました。それでは対処法です。

管理画面のメニューから[コメント]を選び、対象のコメントを見つけて[編集]をクリックします。

wp_pingback_error_03

URLを直接編集します。末尾が「%+2桁」になるように編集します。

wp_pingback_error_04

修正したら[更新]を押して完了です。お疲れ様でしたヾ(゚ω゚)ノ゛

wp_pingback_error_05

 

まとめ

私は「Bloken Link Checker」というプラグインを入れています。

これはリンク切れを教えてくれるプラグインなんですが、これのおかげで気付くことができました。

ピンバックをすべて手動で確認するのは大変だと思うので、調査はプラグインに任せて問題があったときだけ対処がいいのではないでしょうか。

以上、あめたま(@ametama_l2l)でしたヾ(゚ω゚)ノ゛

-WordPress

Copyright© Love2Labo , 2024 AllRights Reserved Powered by AFFINGER4.