Web 制作のことを中心に、ちょっとした Tips などを掲載しています。「自分用メモ」が基本スタンス。

btmup Blog

WordPress

ルートからの相対パスが Broken Link Checker でリンク切れと判定されてしまう問題と解決法。

投稿日:

WordPress には「Broken Link Checker」という大変便利なプラグインがあります。
その名の通りサイト内のリンク切れを見つけて、ダッシュボードなどで知らせてくれるという優れモノ。
チェックをする周期も時間単位で自由に設定できますし、リンク切れしている箇所にスタイルを追加して目で見て分かるようにもできます(デフォルトでは取り消し線を表示)。

で、今回はこんな便利なプラグインに関して大変な出来事があったので、その解決までの経緯をメモ的にアップしておきます。

経緯

コトの発端は、「権限委譲」。つまり「ネームサーバーの書き替え」です。

ある Web サイトのリニューアルと新サーバーへの移設を同時に行っていて、その新サーバーの方で WordPress を使ったサイトを構築していました。
ドメインも引き継ぐことになっていたのですが、当然現状サイトも運用し続けているので、制作中は使えず。
そのためずっとホスティング会社から提供されたダミー URL で新サーバーにアクセスしていたのですが、そうすると画像や PDF などのファイルを挿入するとき、デフォルトではダミー URL を含んだ絶対パスになってしまいます。
また、サイト内リンクにしてもドメインは使えないので、これも絶対パスにしようとするとダミー URL で書くしかありません。
そこで、一つ一つルートからの相対パス(「/?cat=1」みたいな感じ)に直していたのでした。

ところが、晴れて新サイトを公開することになり、権限委譲(ネームサーバー書き替え)を行ったところ、この「ルートからの相対パス」がことごとくリンク切れと判定されてしまったのです。
同じタイミングで「一般設定」の「WordPress のアドレス (URL)」と「ブログのアドレス (URL)」も本番ドメインに変更したので、どちらが直接のきっかけかはわかりません。
とにかく、URL が変わった途端に大量の取り消し線が表示されてしまったのです。

もちろん、本当にリンク切れになったわけではありません。
クリックすればちゃんとリンクしますし、画像の表示やPDFのダウンロードも問題なし。
「Broken Link Checker」の判定だけがおかしい、という状況です。

原因と解決法

原因はすぐに想像できました。
「Broken Link Checker がリンク切れを判定するために基準としている URL がダミー URL なので、新しい URL(ドメイン)が間違った URL だと判定されている」んだろうなぁ、と。
(ルートからの相対パスなのでドメインは関係ないと思っていたら、内部的にはフルパスでデータを保持しているようです。詳細は不明)

なので、「Broken Link Checker がリンク切れを判定するために基準としている URL」を変えてやれば良いんですが、如何せんその方法がよく分からない。
phpMyAdmin で DB も覗いてみましたが、怖いのでやめました。

とりあえず「プラグインを入れ直したら治るかも」という軽い気持ちで、一旦 Broken Link Checker をシステムから外して、インストールし直すことに。
念のためサーバーからもプラグインデータを削除し、システムのプラグインページをリロードして表示が消えたことを確認した後、予めダウンロードしておいた最新版を再アップ&再インストール。
「こんなんじゃダメかなぁ……」と半ば諦めつつ Web サイトを表示してみると、なんと取り消し線が全部消えていました。
意外にあっさり解決!

やっぱり基準の URL がリセットされたことで治ったんだと思います。
サーバーから削除したりデータを新しくダウンロードにしたりしたのは本当に念のためなので、ひょっとしたらプラグインを外してインストールし直すだけで解決したのかも知れません。
今となっちゃ検証もできませんが。

こんなことになるなんて、たぶんレアケースでしょうね。
いろんな条件が重なってますし、どこかをもう少しちゃんと作ってれば良かったような気がします……。

まぁ、もし同じような場面に遭遇したらお試しあれ。




-WordPress
-,

Copyright© btmup Blog , 2024 All Rights Reserved Powered by AFFINGER5.