WordPress パーマリンクを変えてしまった場合の対処

こんにちは、当ブログ管理人 standard59 です。

このブログを開始した当初は、Wordpressをはじめて使って作成したので、パーマリンク設定を初期設定(年/日付/投稿名)のままでした。

しばらくして、そのままだと記事更新したときにパーマリンクがそのままで気持ち悪かったので、何も考えずパーマリンク設定を投稿名のみに変えてみました。

そうしたら、なんてこった。

スポンサーリンク

外部のリンクが404に

落ち着いて考えればよかったのですが、何も考えずに設定かえたら外部からのリンクがすべて404(Not Found)になってしまった。そりゃそうだ。

あわてて、設定を戻すその状態は直ったので一安心。

何かいい方法ないかと調査してみると、リダイレクトすればいいとの情報がありました。

調べているとプラグイン使った方法と.htaacessファイルの設定2通りの方法があり、プラグインは今以上増やしたくなかったので、ファイル修正の方法を実施しうまくいきましたのでその方法を報告します。

.htaccess ファイルの修正

私の利用している X SERVER での内容となります。(他の環境では違うかもしれません)
また、万が一の場合を考えて予めバックアップを行っておきましょう。

.htaccess ファイルダウンロード

まずは、.htaccessファイルを見つけます。FTP等で該当ファイルをダウンロードします。
X SERVER の場合は、WebFTPページがりますので、そのページからダウンロードできます。

ファイルの場所は次の通りです。

/{ドメイン}/public_html/

.htaccess ファイルの修正

テキストエディターにて、ダウンロードしたファイルを開きます。
以下のように追加します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^{旧URL}/{旧投稿名}/(.*)$ http://{ドメイン名}/{新しい投稿名}/ [R=301,L]
</IfModule>

# BEGIN WordPress
{既に記述されている部分はさわらない}
# END WordPress

  • 既に記述されている部分より上に記述します。
  • 既に記述されている部分にはさわらないでください。
  • <ifModule mod_rewrite.c> から </ifModule> の間に記述します。
  • RewriteEngine On を記述
  • RewriteBase / は、ベースのパス位置
  • RewriteRule ^{旧URL}/{旧投稿名}/(.*)$ http://{ドメイン名}/{新しい投稿名}/ [R=301,L] がリダイレクト。
  • 複数の場合はその分だけリダイレクトを記述する。

修正したファイルのアップロード

修正が終わりましたら、そのファイルをサーバにアップロードします。

アップロード先に注意してください。ダウンロードした場所と同じ場所です。

記述に誤りがあると、500エラーとかなりますのでその時は、速やかにバックアップしておいたファイルをアップロードして一旦もとに戻します。その後、修正しリトライします。

まとめ

まとめますと、

  • パーマリンクを何も考えずに変更すると大変なことになる
  • 変えてしまった場合は、.htaccessファイルを修正しリダイレクトする
  • 修正後はよく確認する
  • パーマリンクはブログ作成当初によく考えておく

私の場合は、まだ10記事くらいでしたので、リダイレクトの記述を新旧をそのまま記述しております。条件指定ではないのでご注意ください。

.htaccessファイルの修正は慎重に行ってください。また修正については個人の責任で行って頂ますようお願いします。