WordPressで記事にアクセするURLはパーマリンク設定で変更できます。URLを分かりやすくするため、カテゴリ名を含めている方も多いと思います。このカテゴリ名を変更したりすると記事のURLも変わってしまいます。過去にURLをSNSに投稿していたり、検索エンジにに登録されていると、せっかくアクセスしてくれた読者に「記事が見つかりません」のエラーページが表示されてしまいます。じつはそれを私がやらかしてしまいました。今回はその対応方法をお伝えすることで、同じような方がいた際に参考になればと思います。
何をしたのか
私の場合、WordPress管理画面の設定→パーマリンク設定画面で、/%category%/%postname%/としていました。これにより、URLが https://worldis.fun/{カテゴリ名}/{投稿名}/ とすることができていました。記事が増えてくるとカテゴリを整理したくなってきたのですが、カテゴリ名がURLに含まれていることで気軽に整理できないと思い、URLからカテゴリを削除することを決心しました。
下記の図のように「カスタム構造」から「投稿名」に変更したんですね。
言い訳ですが(汗)、この変更を加えることで過去のURLがアクセスできなくなる可能性は分かっていました。事前にググって対応方法を調べたところ、この変更をしてもWordPressが古いURLへのアクセスを勝手に新しいURLにリダイレクトしてくれるという記事がいくつか見つかりました。そうなのかと思い、気軽に変更してしまったのですが、勝手にリダイレクトされることはなく、残念な結果に。。
このタイミングでアクセスされていた方、不快な思いをさせてしまい申し訳ありませんでしたっ汗汗!
プラグインではなく.htaccessで対応した
リダイレクトされないことは身をもって理解したのですが、対応方法を決めるのに苦慮しました。理想はWordPressの標準機能で勝手にリダイレクトされることですが、他の設定を一通り見ても解決できず、WordPressに期待するのは諦めました。
Webで見つかった対応方法は2つ。1つはリダイレクト機能を持ったプラグインをインストールすること。もう1つは.htaccess(「ドットエイチティアクセス」と読みます)というファイルでリダイレクト設定を直接書くこと。このファイルに設定を書くことで、Webサーバーを制御することができます。今回はこちらで対応しました。
なぜ.htaccessなのか
プラグインを調べてみると、汎用性もあり、細かな制御もできるし見た目も分かりやすい素晴らしいものでした。ただ、プラグインはやや重いイメージがあるので、今回はプラグインは選択しませんでした。今のところ当ブログのカテゴリ数が多いわけでもないのでプラグインを入れても問題無いと思いますが、少しでも軽い方が良いと思って.htaccessを選択しました。
※プラグインを試していないので、調べたプラグイン名は触れないようにします
.htaccessに設定した内容
.htaccessはサーバーのWordPressフォルダ直下に保存されています。レンタルサーバーによっては、サーバーの管理画面から直接変更できるようです。レンタルサーバーを使っている場合はFAQなどに記載があるようなので、お使いのサーバーのマニュアルなどを確認してみてください。
私が利用しているレンタルサーバーはConoHa Wingというサーバーなのですが、下記にマニュアルがありました。
https://support.conoha.jp/w/htaccess/
今回の設定で.htaccessに下記を追記しました。(これは一例で、カテゴリごとに行を追加しています)
RedirectMatch 301 ^/wordpress/(.*)$ /$1
この設定を大まかに説明すると、URLに/wordpress/が含まれている場合、カテゴリ名を削除してリダイレクトする、といった内容になります。また、301という数字があると思いますが、「このURLは永久に変更になりましたよ」という意味になります。つまり、記事にアクセスしてきた人に
といった感じの返事をすることになります。これをブラウザとサーバーが勝手にやってくれるので、読者の方は何も気にせずアクセスできるようになります。
そして、時間はかかるかもしれませんが検索エンジンも引っ越したことを認識して、登録しているURLを更新してくれます。Googleの資料にも記載されているので参考にしてみてください。
https://developers.google.com/search/docs/advanced/crawling/301-redirects?hl=ja
最後に
Twitterに投稿したURLは今回の方法では変えることはできませんので、投稿し直すか、削除するまで残り続けます。ただ、一般的に古い投稿へのアクセスは時間と共に減ると言われているようです。設定が不要になり削除する場合は、十分に時間が経って古いURLにアクセスしてくる人がいないことを確認できれば、設定を削除しても良いと思います。
私は今のところ設定が残っていてもブログの運営上問題がないため、消すつもりはありません。ただ、影響が無いとも言い切れないので、しばらくは投稿した記事のチェックはしっかり行おうと思います。
こうやって継続することで新たな課題が見つかり、改善するのって楽しいですね。それでは、また。