先日、当社のホームページをSSL化したのですが、その後、少々問題が発生しました。
当社では、ホームページを掲載するためのルートドメインの他、サブドメインをふたつ使っています。
先日は、ルートドメインに対してSSL化したのですが、その結果、SSL化していないサブドメインにアクセスしようと思っても、アドレスが勝手に「http」から「https」にリダイレクトされてしまい、サブドメインにアクセスできません。
ディレクトリ構成を確認すると、以下のようになっていました。
top/ →ルートドメイン <WordPress用各種ファイル> sub1/ →サブドメイン1 wp/ <WordPress用各種ファイル> sub2/ →サブドメイン2 dir1/ dir2/
ルートドメインのSSL化の際にWordPress用の「常時SSL化プラグイン」を行なったのですが、これにより、最上位ディレクトリの直下に、リダイレクトについて書かれた「.htaccess」ファイルが作られていました。
この「.htaccess」ファイルが、下位ディレクトリに対しても有効になってしまうため、サブドメインにアクセスできなくなったようです。
top/ →ルートドメイン .htaccess →リダイレクトを設定(下位ディレクトリにも有効) <WordPress用各種ファイル> sub1/ →サブドメイン1 wp/ <WordPress用各種ファイル> sub2/ →サブドメイン2 dir1/ dir2/
対処法について考えました。
サブドメイン1では、別途WordPress環境を構築しているので、これについては、ルートドメインと同様に、SSL化することにします。
SSL化した結果、ルートドメインの「.htaccess」とほぼ同じ内容の「.htaccess」ファイルが、サブドメイン1の下にもできました。
サブドメイン2はSSL化したくないので、ルートドメインの「.htaccess」の内容を上書きするための「.htaccess」ファイルを設置します。
「.htaccess」の構文については全く知らないのですが、以下のように記述してみました。
<IfModule mod_rewrite.c> RewriteEngine off </IfModule>
これで確認したところ、うまくいきました。
このファイルをサブドメイン2の直下に設置したので、サブドメイン2より下の各ディレクトリについては、リダイレクトされずにアクセスできるはずです。
結果、以下のように、各ドメイン毎に「.htaccess」ファイルが設置されていることになります。
top/ →ルートドメイン .htaccess →(1) <WordPress用各種ファイル> sub1/ →サブドメイン1 wp/ .htaccess →(2) (1)とほぼ同じ内容 <WordPress用各種ファイル> sub2/ →サブドメイン2 .htaccess →(3) リダイレクトしないように設定 dir1/ dir2/
今のところはうまくいっているので、しばらくはこれで様子を見ようと思います。
なお、私がWordPressの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
WordPressについては、Web上にもたくさんの情報がありますが、きちんと理解して使いたい場合には、一度書籍も読んでおいた方がいいかもしれません。