2023-05-09/2023-05-23

WordPressで勝手にリダイレクトされる

WordPressで勝手にリダイレクトされる

WordPressでは存在しているページに近いURLでアクセスした際、存在しているページへ勝手にURLが変更されて表示されます。

本記事ではどのようにリダイレクトされるのか、リダイレクトさせず404として扱いたい場合にはどうするか紹介します。

リダイレクトされる現象

WordPressでデフォルトで公開されているタイトル「Hello world!」という投稿があります。パーマリンク設定が「投稿名」の際、このページにアクセスするには「https://ドメイン名/hello-world/」というURLにアクセスします。

今回扱うのは「https://ドメイン名/hello-worl/」のように惜しいけど違うURLでアクセスした際、勝手に「https://ドメイン名/hello-world/」というURLにリダイレクトされてしまう現象です。

なぜリダイレクトされる?

404が期待されるページにアクセスしているのに存在しているページへリダイレクトされるのか。

それはWordPressが存在するURLを探してリダイレクトするからです。

どのようなURLがリダイレクトされるのか

パーマリンク設定が「投稿名」の場合「https://ドメイン名/hello-world/」は「https://ドメイン名/index.php?page=&name=hello-world」とリライトされます。このnameの値でライク検索されています。

ヒットした場合そのURLへとリダイレクトされます。

WordPressインストール直後であれば、「https://ドメイン名/h/」とアクセスしても「https://ドメイン名/hello-world/」へとリダイレクトされるということです。存在するURLに近くても「https://ドメイン名/ello-world/」の場合検索でヒットしないのでリダイレクトされません。

リダイレクトしないようにしたい

勝手にリダイレクトして欲しくない場合もあると思います。その場合下記コードを利用して制御できます。

add_filter( 'do_redirect_guess_404_permalink', '__return_false' );

functions.phpやWP Codeに張り付ければOKです。

2020 KumaTechLab.