こんにちは!エンジニアのノムラです。
サイトにアクセスしてきた人を別ページに飛ばしたい、
サイトを移転したから、新しいサイトに飛ぶようにしたい
と考えている方、リダイレクト処理を実行してみましょう。
この記事では、
【基礎】リダイレクト処理の実装
【おまけ】リダイレクトさせるプラグインの紹介
といった内容を解説していきたいと思います。
そもそもリダイレクトについてわからない、リダイレクト処理の実装方法がわからない、という方はぜひこの記事でマスターしていってくださいね!
リダイレクトとは?
リダイレクトとは、ウェブサイトにアクセスした際、自動的に他のページに転送させる処理のことを言います。
例えば、サイトを新しく作った時、古いサイトにアクセスしてきた人を自動的に新しいサイトに転送する場合などにリダイレクトを使います。
リダイレクトの種類として、301リダイレクトと302リダイレクトなどがありますが、301は永久的なリダイレクト、302は一時的なリダイレクトとされています。
ウェブサイトを完全に移転した場合は301、モバイル版に飛ばしたり、メンテナンスで一時的に別ページに飛ばす場合は302を使うというイメージです。
リダイレクト処理を実装する
実際にリダイレクト処理を実装してみましょう。
ここでは、プラグインを使わずに実装していく方法を解説します。
.htaccessに記述
まずは.htaccessにリダイレクト処理を記述していく方法を解説します。
.htaccessはサイト管理者が、ディレクトリ単位で設定や制御を行うことができるファイルです。
リダイレクトの他にも、404エラーページの作成やBASIC認証を行うことができます。
wordpressのフォルダ内にある.htaccessを編集します。
FTPソフトで非表示になっている可能性があるので、見つからない人は隠しファイルを表示しましょう。
.htaccessについて詳しく知りたい方は以下のサイトを参考にしてください。
.htaccessとは?といった基礎的なことから、.htaccessが見つからない場合の解説まで、初心者にもわかりやすく解説されています!
.htaccessを開くと以下のような内容が記述されています。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] </IfModule> # END WordPress
リダイレクトの処理は# END WordPressの下に以下の処理を書きます。
元のページがwordpress.com/top_pageの場合
redirect 301 /top_page http://www.google.co.jp
これでサイトにアクセスした際、元のサイトが表示されることなくGoogleのページにリダイレクトされます。
今回は、Goggleにリダイレクトさせていますが、http://www.google.co.jpは任意のURLに変えて使うことができます。
関数を使ってリダイレクト
WordPressにはリダイレクトを行うwp_safe_redirect関数も用意されています。
使い方は以下のようになります。
<?php wp_safe_redirect( リダイレクト先URL, HTTP レスポンスコード ); exit; ?>
リダイレクト先URLには、任意のURLを入力します。
HTTP レスポンスコードはリダイレクトの種類を指定しましょう。
初期値は302になります。
また wp_safe_redirect関数は自動的にexitしないので、処理の直後に exit()を行います。
実際に使ってみましょう。
今回は、ログイン後管理画面に飛ばさずに、サイトトップページにリダイレクトさせたいと思います。
外観>テーマの編集の画面から左のメニューバーでfunction.phpを開きます。
一番下に以下のコードを記述しました。
/*リダイレクト処理*/ function login_redirect_page(){ wp_safe_redirect(home_url()); exit(); } add_action('wp_login','login_redirect_page');
これで、ログイン後管理画面が表示されることなく、トップページに遷移します。
ログアウト後にトップページに遷移したい場合は以下になります。
/*リダイレクト処理*/ function logout_redirect_page(){ wp_safe_redirect(home_url()); exit(); } add_action('wp_logout','logout_redirect_page');
購読者などに管理画面を表示したくない場合に使えそうですね。
プラグインを使ってリダイレクト
ここまで、リダイレクト処理を実装する方法を解説しましたが、コードを書かずにリダイレクトを行うことができるプラグインもあります。
今回は、コードを書くのは不安な人向けにリダイレクトのプラグインRedirectionの使い方も解説したいと思います。
https://ja.wordpress.org/plugins/redirection/
Redirectionをインストールして有効化すると、ツールの中にRedirectionという項目が表示されるのでRedirectionの画面に行きましょう。
新しい転送ルールを追加から転送ルールを追加します。
ソースURLは、転送元のURL
ターゲットURLは、転送先のURL
を入力します。
ルールを追加すると、作成したルールに沿ってリダイレクトが行われます。
とっても簡単ですね。
作成したルール一覧から、編集、削除、無効化も行うことができるので、プログラムを自分で書いていくのは不安な人でも簡単に使うことができます。
まとめ
ここまで、リダイレクトって何?といった内容から、リダイレクト処理を自分で実装する方法、プラグインを使って初心者でも簡単にリダイレクトさせる方法について解説しました。
リダイレクトを使いこなすことで、自由な画面遷移を実現することができたり、サイトの移転も安心して行うことができます。
しっかりマスターしていきましょう!