ワードプレスで特定URL(ディレクトリ名)のアクセスをトップページへリダイレクトさせる方法

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。

本日は業務メモです。ワードプレスでは特定URLへのアクセスを拒否したい場面があります。たとえば運営中のサイトのURLが「example.com」だったとして「example.com/category/information」にアクセスがあったときにページを開きたくないといった状況。意外と少ないかもしれませんが、該当ページが開くことによって「検索エンジン(グーグル)側にURLとして認識されるのを避けたい」なども考えられます。

ワードプレスで特定URL(ディレクトリ名)のアクセスをトップページへリダイレクトさせる方法

調べてもなかなか出てこなかったので次回用の対応メモとして残しておきます。ワードプレスでサイトを運営していると特定のディレクトリ名が含まれるURLへのアクセスを無効化したくなることがあります。

.htaccessを使った一般的なリダイレクト方法

一般的には下記の手法で「.htaccess」を使ってリダイレクトさせます。301リダイレクトと呼ばれています。

Redirect permanent /directory-name http://example.com

上記の書き方では「example.com/directory-name」へのアクセスを「example.com」に強制転送します。この方法でも良いのですがサーバーによっては「.htaccess」が使えない環境も考えられますよね。

そんなときは「functions.php」からphpで制御をかける方法が便利です。phpであれば「.htaccess」使用許可は関係なく自由に指定可能です。さらに言えば「.htaccess」ではドメインの表記が必要でしたがphpであればドメインの表記をせずに実装もできます。ワードプレスにはこういった便利な関数が色々揃っていて便利ですよね。

URLに「abcde」という文字列が含まれる条件付リダイレクト方法

以下がURLに含まれる文字列から判断してリダイレクトを行う命令文です。

add_action( 'get_header', 'specified_url_redirect' );
function specified_url_redirect(){
	//現在ページ取得
	$url = $_SERVER['REQUEST_URI'];

	//URLに「abcde」という文字列が含まれていたらリダイレクト
	if(strstr($url,'abcde')){
		wp_redirect( get_site_url(), 301 );
		exit;
	}
}

カンタンに解説すると「現在ページ取得」で今開かれているページのURLを取得して「URLにabcdeが含まれているかどうか」をif文でチェックしています。もし現在開いているURLに「abcde」があればトップページにリダイレクトされるという処理ですね。ちなみに301という部分を302に書き換えると302扱いに変更できます。

get_site_url()ではトップページのURLを取得しているので「URLの文字列にabcdeが含まれていれば」トップページに301リダイレクトをかけるという処理となります。ちなみに「301」なら永久転送扱い、そして「302」にしたら一時転送扱いなので状況に応じて書き換えればOKです。一時的な変更なら302を選んでくださいませ。

まとめ

本日はURLに含まれる文字列から判断して「リダイレクト処理」をかけるという方法をご紹介させていただきました。考え方としては「301リダイレクトが妥当であれば使ってもOK」です。ただ、どういった理由で文字列を判断したいのかによっては別の方法が良い場合もあります。他にも色々な自動転送をお試しくださいませ。

最新式の無料プラグインを事前公開

WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
改良されたプラグインを確認する

ワードプレス専門家に丸投げする

WPホームページ研究所はワードプレスを中心としたブログ作成・ホームページ制作・オウンドメディア構築・プラグイン設定・調整など幅広いカスタマイズに対応しております。 記事の掲載情報だけでなくお好みの機能をいただければ専属スタッフが心を込めて真摯に対応させていただきます。お気軽にお問い合わせください。

お問い合わせの種類をお選びください(もっとも近い項目)

法人の場合は法人名とご担当者のお名前をご入力ください

返信時のご連絡に利用するメールアドレスをご入力ください

運営中のウェブサイトURLがあればご入力ください

お困りの内容があれば詳しい内容をお聞かせください