初心者向けWordPress講座ブログお問合せホームブログ運営者向けWordPressプラグインWordPressのRedirectionプラグインで正規表現を使う設定方法WordPressのRedirectionプラグインで正規表現を使う設定方法WordPressプラグイン2020年2月12日ツイートシェアはてなPocket先日、WordPressサイトを別ドメインに引っ越すという仕事をしたのですが、前のドメインから全記事リダイレクトに加え、パーマリンク構造も変える必要がありました。WordPressでリダイレクトといえばRedirectionという便利なプラグインがあるのですが、ググってみるとURLを1つずつ登録してリダイレクトを設定する方法しか説明していないサイトばかり。数ページぐらいのサイトの引っ越しならそれでもよいですが、何百記事もあるサイトを引っ越しする場合、とてもじゃないけどやってられません。いうときに便利なのが正規表現ですが、その方法を説明してくれた記事を見つけられなかったので自力解決しました。その時の覚え書きです。正規表現テストサイトを使おう今回のリダイレクトでやりたいことやりたいことは「リダイレクト元のページにアクセスした時にリダイレクト先の同じ内容のページに飛ばす」という動作です。リダイレクト元とリダイレクト先のURL構造が全く同じ場合はドメインの部分のみが変わればOK。これは後ほどご紹介しますが非常にシンプルな表現で対応できます。今回私が依頼を受けたケースは、下記のように日付を含むパーマリンクから含まないパーマリンクへのリダイレクトでした。「なんで今どきパーマリンクが日付と投稿名なのよ...」と突っ込みたいところですが、これで運用していたのだから仕方ありません。このパーマリンクを引っ越しに合わせてスッキリさせたいという気持ちも分かります。このリダイレクトで行う処理は次の2つ。リダイレクト元のURLから投稿名を取り出す取り出した投稿名をリダイレクト先のドメインの後ろつけるこれを正規表現をつかって実現していきたいと思います。大事な前提条件として、どちらもパーマリンクの最後の部分(今の場合は投稿名)が同じ文字列になっていなければなりません。ここが変わっていたらどうしようもないので気をつけてください。インストールしましょう。インストールしている方はこの部分は飛ばしてください。WordPressプラグイン公式サイトに登録されているので、プラグインの新規追加画面で「Redirection」と検索すれば出てきます。プラグインの公式サイトもあます。WordPressこちらのページは英語ですが使い方が詳しく書かれているのでガッツリ使いたい場合は目を通しておくことをオススメします。インストールして有効化すると、ツールの中に「Redirection」という項目が現れるのでクリックしましょう。すると初回セットアップ画面が現れます。「セットアップを開始」をクリックすると基本セットアップのページが表示されます。自動リダイレクトとログの保存の設定です。サイトを引っ越す場合は引っ越し元を更新することはないと思うのでチェック無しでOKでしょう。ログの保存はデータベースが肥大するのでどうしても追跡したいのでなければオフでよいでしょう。設定が終わると「セットアップを続行」をクリックします。APIのチェックが始まります。表示されるまで待ちましょう。普通はGoodのはずです。「セットアップ完了」をクリックするとセッティングが始まりるのでしばらく待ちます。私環境では十秒ぐらいで終わりました。「完了!」をクリックすると管理画面に移動します。正規表現を使える設定します。「新しい転送ルールを追加」の「ソースURL」の右にあるリストから「正規表現」を選びます。すると、右に正規表現というタグが表示されました。ちなみに、URLをマッチングさせる方法は公式サイトにも説明されているので、一度見ておくと良いと思います。Redirectionドメインだけを変えたい場合ドメインのみ変えてリダイレクトする場合は下記のように設定します。ソースURL:^\/(.*)\/ターゲットURL:リダイレクト先のドメイン/$1ソースURLにはリダイレクト元のドメインより後ろの部分を正規表現で指定します。https://example.com/sample-postだった場合、https://example.comは省略できて、その後ろの/sample-postの部分にマッチングする正規表現を書けばよいということになります。細かい説明は下図をご覧ください。ソースURLにはプラグインがインストールされているドメインが自動的に設定されます。そのため書く必要はありません。リダイレクト元のURLが日付の場合リダイレクト元とリダイレクト先のURL構造が違う場合は色々工夫する必要があり、この記事の冒頭で紹介した日付のパーマリンクの場合は下記のような正規表現で実現できます。いうパターンを検索し、文字列だけを取り出して$1に代入するという動作になります。数字を検出する\d*の部分は\d+でも大丈夫です。このあたりはもっとよい書き方があれば是非コメントください。正規表現テストサイトを使おういかがだったでしょう?正規表現には書き方が色々あるので、今回ご紹介したのものだけが正解ではないですし、サイトの条件によっては上手く動かないかもしれません。私も正規表現の理解は浅いので最初は上手くできず試行錯誤を繰り返しました。そんなときには次のような正規表現テストサイトがとても便利です。https://regex101.com/このサイトでは正規表現を変えると結果がどう変わるかが視覚的に確認でき、細かな説明も表示されます。全て英語ですが非常に素晴らしいサイトでオススメです。WordPressプラグインシェアをお願いします。ツイートシェアはてなPocketコメントこの記事へのコメントはありません。コメントをどうぞ返信をキャンセルする。メールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。誠Webエンジニア&整体師プログラミングやWebサイト作りの面白さにはまって、整体師だけでなくWebエンジニアの仕事もするようになりました。