XSERVER : サブドメインへのリダイレクトでループにハマらない .htaccess リダイレクトの書き方

XSERVER で運用中のサイトで、サブドメインへリダイレクトしようとして、リダイレクトループにハマったのでメモ。

## 前提 : XSERVER のディレクトリ構造

XSERVER でサブドメインを作成すると下記のような構造になり、ドキュメントルートにある .htaccess はサブドメインにも影響します。

~~~
example.com
└ public_html
  ├ .htaccess
└ sub.example.com(サブドメイン)
└ .htaccess
~~~

## リダイレクトループにハマる

https://example.com/a.html の記事をサブドメイン https://sub.example.com/a.html に移動する場合、ドキュメントルートにある .htaccess に

~~~
Redirect permanent /a.html https://sub.example.com/a.html
~~~

などと書いてしまうと、サブドメインのルートにある a.html もリダイレクトしようとして、リダイレクトループとなります。

## リダイレクトループにならない解決方法

この場合、ホスト名が https://example.com の時だけリダイレクトが発動するよう、下記のように記述すればうまくいきます。

~~~
RewriteEngine On
RewriteCond %{http_host} ^example.com
RewriteRule ^a.html https://sub.example.com/a.html [R=301,L]
~~~

以上です。お役に立てば幸いッ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です