こんにちは。
先日サブドメインでサイトを作ってみようと思い試行錯誤しながら対応していると大変な事態になりました。
1人で文句を言いながら3時間くらいかけてようやく解消したので記事にしたいと思います。
タイトルの通り、サブドメインのトップページだけがなぜか勝手に別サイトにリダイレクトされてしまうという事態に直面しました。
これは結構厄介です。
理由は、そもそも別々のサイトが1つのURLに統合されてしまうからです。
それぞれのサイトで別々のコンテンツがあるのにトップページが統一されてしまうと、リダイレクト元のサイト情報を見ようとした人は別サイトにリダイレクトされてしまいます。
また、Googleの評価も悪くなるでしょう。
謎のリンク構造になってしまうので。
そこで今回は正しい解消法か不明ですが、解決した方法について書いていきたいと思います。
なんというか今回は思うように設定が出来ずに苦しみました。
環境はエックスサーバを使用しています。
スポンサーリンク
サブドメインが勝手にリダイレクトされる
原因となる作業
ルートディレクトリの関係でしょうが、サブドメインのトップページだけがリダイレクトされるようになりました。
もちろん、理由があって.htaccessは書き換えています。
しかし今回紹介する形では、本来はリダイレクトなど発生しないはずです。
それでもなぜか別のドメインのサイトへトップページがリダイレクトされてしまいました。
ですが、少し原因になる作業をしてしまったのでその影響であると思います。
- ○○.comドメインが存在
- ▲▲.○○.comがサブドメイン
- □□.comが別サイト
私が今回やったのは、元々「○○.com」で運営していたサイトを「独自ドメイン化」しようとしました。
それまでは、「○○.com」も「▲▲.○○.com」も独立したドメインとしてサイトが運営出来ていたので、単純に「○○.com」を新ドメインへリダイレクトすれば良いだとうと思っていました。
つまり、大本のドメインとは別のドメインで存在しており、本来は何ら関係のない存在です。
そこで、.htaccessへ以下の設定を追加しました。
RewriteCond %{HTTP_HOST} ^○○\.com
RewriteRule (.*) https://□□\.com/$1 [R=301,L]
確認作業をしていると、リダイレクトの正常性やHTTPSへ正常に統一できている事が確認できました。
あくまで新しい「独自ドメイン」ですが。
しかし、サブドメインサイトのメンテナンスをしてみると
▲▲.○○.com→□□.comという謎のトップページリダイレクトが発生しました。
( ゚Д゚)!!
しかもトップページだけです。。
なんでしょうこれは。。
と思い、とにかく.htaccessファイルをいじりまくります。
全然治らないどころかループが発生したり大変でしたw
.htaceessってそんな難しい事していたかなーと思っていましたがだんだんイライラしてきました。
リダイレクトで失敗なんてしたこともないので、理由が分からず困り果てました。
という事で次へ行きます。
解決した方法はやはりリダイレクト
解決方法ですが、これもリダイレクトの設定で何とかなりました。
ただし、.htaccessファイルが正常に処理をしてくれていない感じもします。
明示的に設定していないリダイレクトも発生しているので、何かが悪さをしていそうです。
今回はやった解決策もリダイレクトでした。
.htaccessへ以下を追加しました。
Redirect permanent /▲フォルダ名▲/ https://▲▲.○○.com/
先に記述しておいた「RewriteCond %{HTTP_HOST} ^○○\.com」「RewriteRule (.*) https://□□\.com/$1 [R=301,L]」の記述と、それ以外で設定できるリダイレクトの方法です。
解決策になった記述の方がなぜか有効というか効果が強いようです。
サブドメインのフォルダを、元のサブドメインのURLへリダイレクトさせています。
元々何もしなくても普通に表示されてたはずですが、ドメインのルートディレクトリだけを新サイトへリダイレクトさせようとすると問題が出てくるようですね。
もちろん、私の手順や設定が足りていないのかもしれません。
ただ、URLが統合されてしまう時間が長くなると検索エンジンに混乱を招きそうなので早めに分離した方が良いでしょう。
正しい在り方についてはまた別途考えていきたいと思います。
同様の事象が発生した場合は
私が遭遇した状況と同じ状況になったとき、まずは以下を意識してみると良いと思います。
私は大混乱して、上手く行かない事に1人で怒り狂っていたのでw
- .htaccessを何度か修正する(リダイレクト)
- リダイレクトが発生するサイトでそれぞれどこまでリダイレクト(他のサブドメインなども)されるか確認する
- HTTPからHTTPSなどの統一も変化があるか確認する
- ブラウザキャッシュの影響で正常な設定になっていても治っていないように見えることがある
個人的には一番下のブラウザキャッシュが大きいです。
サイトの確認はスマホからもするのですが、今回は治ったきっかけはスマホからチェックした時に正常になっていたことを確認したためです。
PCのChromeでは相変わらずダメだったので、キャッシュクリアをすると正常になっていました。
とりあえず、1つ1つ切り分けるのが大切です。
ちなみに、リダイレクトせずにDNSサーバでCNAMEにしたらSEO的にどのようになのでしょうかね。
CNAMEが使えたらこのような不毛な対応も必要なくなるのですが…(別の費用がかかりそうですが)
スポンサーリンク
最後に
もし同じような事象に出くわして困っている人がいれば参考にして頂ければと思います。
また、正しい設定方法があれば教えて頂きたく思いますね。
あ、でも独学主義とかたくさん書いているので、もちろんあえて教えずに自己解決の道を選択させてもらっても大丈夫ですw
とりあえず今回は、初めてトラブルに直面したと言ってよいほど必死に対応しました。
今回のようなサブドメイントラブルがあると、がちゃがちゃいじり過ぎるのもダメなんだと思いました。。。