【WordPress】マルチサイトでドメイン直下をリダイレクトさせる
- #PHP
 - #WordPress
 - #HTML
 - #tips
 
こんにちは!
 上毛印刷WEB制作担当のソーヤです。
 
WordPressのマルチサイト機能はご存じでしょうか。
 親となるWordPressで、複数の子WordPressを管理する機能です。
 こんな感じのイメージ↓↓↓![]()
雛形となるWordPressを作成して、複数のWordPressを量産する際など本当に便利ですよね。
そんなWordPressのマルチサイト機能ですが、以前ある問題が発生しました。
・ドメイン/tokyo/
 ・ドメイン/yokohama/
 ・ドメイン/nagoya/
 ・ドメイン/osaka/
 上記のように、複数の子WordPressを量産していたのですが、
 ある時、「ドメイン直下にアクセスしたらどうするの?」とWEBディレクターに聞くと、
 「親会社のサイトにリダイレクトさせてください」との指示がきました。
「リダイレクトね、じゃ.htaccessに記述するか」と短絡的に考えていたのですが、
 実際に下記のように.htaccessに記述すると・・・
Redirect permanent / https://親会社.com/もちろん、すべてのディレクトリが親会社のサイトに飛んでしまいます・・・
さて、どうしたものかと・・・
 色々調べてみたのですが、
 WordPressのマルチサイト機能をONにした際、.htaccessの記述がかなり複雑になるので、あまり.htaccessをいじらないほうがいいという記事をみました。
 でも、なるべくGoogle様が推奨されているように、meta refreshやJavaScriptでのリダイレクトを使わず、301 リダイレクトさせたいと思っていました。
そんな問題を解決する画期的な関数がWordPressにありました!
テンプレートファイル例
<?php
/*
Template Name: マルチサイトトップページ
*/
?>
<!doctype html>
<html <?php language_attributes(); ?>>
<head>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name='robots' content='noindex,nofollow' />
</head>
<body>
  <?php wp_redirect( '★リダイレクト先のURLを記載★', 301 ); exit; ?>
</body>
</html>
上記コードをindex.phpに記述してテーマを作成。
 親のWordPressに適用させると、きれいに301 リダイレクトさせることができます!
まとめ
少しでもクオリティの高いWEBサイトを作るために、辛抱強く調べ続けることは、
 本当に大事ですね。
この記事に対するご意見・ご感想・ご質問等ありましたら、
ぜひ下記フォームにてお送りください。