WordPressには、存在しないURLのページへアクセスした際に、類似URLへ自動でリダイレクトするという機能があります。
便利な機能ではあるのですが、場合によっては不要な機能であったり、意図しないページへリダイレクトされてしまったりする場合があります。
今回は、この類似URLへの自動リダイレクト機能を停止させる方法を解説していきます。
似ているURLへの自動リダイレクト機能とは
まず始めに、似ているURLへの自動リダイレクト機能とはどういうものか見ていきましょう。
例として以下のようなURLがあるとします。
http://ドメイン名/news/
上記URLにアクセスしようとした際に、間違えて以下のURLにアクセスした場合
http://ドメイン名/new/
「news」を間違えて「new」にしてしまった場合、本来はページが存在せずに404ページが表示されます。
ですが、URLが似ている「news」へと自動でリダイレクトされます。
間違ったURLを入力してしまった際に、正しいURLへと誘導してくれる便利な機能ですが、必ず正しく動作するというものでもありません。
ページ数が増えたら似ているURLが複数ある場合もあり、自動リダイレクトが意図しないページに誘導してしまう可能性もあります。
似ているURLへの自動リダイレクト機能を停止する方法
類似URLへの自動リダイレクト機能を停止するにはfunctions.phpに以下の内容を記述します。
function stop_auto_redirect($redirect_url){
if (is_404()) {
return false;
}
return $redirect_url;
}
add_filter('redirect_canonical','stop_auto_redirect');
redirect_canonicalフックを利用しis_404()を条件にして、アクセスされたURLが存在しない場合に類似URLにリダイレクトする処理を無効化しています。
注意点
この似ているURLへの自動リダイレクト機能を停止した場合、存在しないページへアクセスすると404ページが表示されます。
ユーザーが迷わないよう、ナビゲーションメニューやサイト内検索などを404ページにも表示しておきましょう。
さいごに
いかがでしたでしょうか。
今回は、似ているURLへの自動リダイレクト機能を停止させる方法を解説しました。
WordPressには便利な機能がたくさんありますが、使い方や運用によっては不要な機能となります。どの機能が必要か適切に判断し使用するようにしてください。