リンク切れでURLに「%E2%80%8B」が見つかった場合の対処法

Googleのウェブマスターツールなどを利用すると、外部のサイトからのリンクがどれだけあるかを把握することができます。

一方で、見つからない不正リンクなどを見つけることもできるので、SEO対策にも非常に便利です。 今回はその中で見つかったちょっと奇妙な現象とその対策方法を書こうと思います。

不正なリンク発見!…URLの見た目は問題ないが…

リンクエラーで見つかったものの一つに外部からのものがありました。 そのURLには「%E2%80%8B」という文字列が付加されています。 「変だな?」と思ってリンク元のサイトを辿ると、私のサイトのある次の1ページにリンクが貼ってありました。

http://colo-ri.jp/develop/2009/04/post-11.html

ご覧のとおり、URLには先程の「%E2%80%8B」の文字がありません。
ページのソースコードを見ても問題なし。
ところが、コピペしてブラウザのURL欄に貼り付けてアクセスするとURL欄に「%E2%80%8B」が現れ「404 NotFound」のエラーに。

http://colo-ri.jp/%E2%80%8Bdevelop/2009/04/post-11.html

ゼロ幅スペース文字が含まれていた!

いろいろ調べていくと、文字の中には「ゼロ幅スペース(数値文字参照で「​」)」というものが含まれていることが分かりました。

http://colo-ri.jp/ゼロ幅スペースdevelop/2009/04/post-11.html

この文字が文字コード:UTF-8で埋め込まれており、ブラウザのURLに指定されることで16進数のURLエンコードが行われ「%E2%80%8B」に変換されていたわけなんですね。

.htaccess によるリダイレクト指定で正しいURLに誘導しよう

これは外部サイトからのリンクですから、管理者にお願いして書き換えてもらうのがベストなんですが、そう簡単にいかないところがほとんどかと思います。

そこで .htaccess ファイルを作成して「%E2%80%8B」を無視して正しいURLにリダイレクト(遷移)させるようにしましょう。 私のページだと以下のようになります。

RewriteEngine On
RewriteRule ^.+develop/2009/12/post-11.html /develop/2009/12/post-11.html [R=301,L]

これでバッチリリダイレクトされるようになりました。 R=301を指定することによって「Moved Permanently」がアクセス元(Googleなど)に通知されるので、正しいURLで認識されることでしょう。

このページをシェアする

1 件のコメント

  • sh より:

    まさに同じ問題にあたっていたので、助かりました。ありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

2012-05-19