再構築中につきトッ散らかっています

サブドメインを使っているあなたのサイトの『裏口』を今すぐふさぐ.htaccessのとても簡単な設定方法

サブドメインを使っているあなたのサイトの『裏口』を今すぐふさぐ設定法 ウェブサイト制作

まいど、へんてこネット・けだまです。この記事ではレンタルサーバーを使っている人に向けて、http://subdomain.example.com に作ったWebサイトに http://example.com/subdomain/ からもアクセスできてしまうという『裏口』問題の対策法について書きます。

わりと多くのレンタルサーバーでは、独自ドメインとそのサブドメインを利用する場合、そのディレクトリ(サーバー内のフォルダ)構造は下記のようになっていると思います。

/example.com/public_html/(ここにドメインのWebサイト)
                        /subdomain1/(ここにサブドメイン1のWebサイト)
                        /subdomain2/(ここにサブドメイン2のWebサイト)

例えばこのサイトで利用しているエックスサーバー、コスパがいいので惰性で契約し続けているさくらのレンタルサーバはこのディレクトリ構造です。以前使っていたXREAコアサーバーは違いました。

このディレクトリ構造の問題点として、Webサイト作成者としては http://subdomain.example.com というサブドメイン(だけ)にWebサイトを設置したつもりが、実際は http://example.com にある /subdomain/ というディレクトリにアクセスしても同じWebサイトが表示されてしまうことが挙げられます。

実際にテストサイトを作りました。

同じWebサイトが2つの URL でアクセスできますね(ヤバっ!自分のサイトも『裏口』があるかも!?)。

これでどのような問題点があるかというと、まずドメインが異なるため cookie(クッキー、アクセスした人のパソコンや端末にデータを保存するしくみ)も異なります。この影響でアクセス解析が常に動かなかったり、ログインの必要なサイトではもう一度ログインを求められたりします。ドメインが異なるもう一つの問題として Google などの検索サイトに別のサイトとして扱われ、両方が検索結果に載ってしまったり内容の重複と判断されるかもしれません。また html でルート相対パス(ドメインを省略してそれ以下の URL だけを指定する記述法)を使用している場合は正常に表示されません。

とりあえず大ピンチは思いつきませんが、それでも意図しない表示をされるのは気持ち悪いよね…DA・YO・NE。

で、この状況は .htaccess というファイルを作って下記コードを追加するだけで防ぐことができます。

[php]
#指定したサブドメインはアクセスを許可、他は拒否
SetEnvIf Host “^subdomain\.example\.com$” ok
order deny,allow
deny from all
allow from env=ok

[/php]
「subdomain.example.com」の部分を自分のWebサイトのサブドメインに書き換えてください。「.」(ドット)の前にバックスラッシュ(半角文字の¥マーク)を入れてください。また最終行の最後に必ず改行を入れてください(5行目の最後に改行を入れる=何もない6行目を作る。まあ、無駄な改行はいくつあってもいいのでエンターキーをバシバシ叩いとけばおk)。

これも実際にテストサイトを作りました。今度はこの.htaccessの設定を行っています。

下の方のリンクではエラーとなり、狙い通り Webサイトは表示されなくなりました。

.htaccess は WordPress の場合は自動的に作成されるので、それを FTPソフトでダウンロードしてテキストエディタで編集するか、WordPress の管理画面で操作できるプラグインをインストールして編集するかしてください。

そうでない場合は.htaccessファイルを自分で作ることになります。まず Windows のパソコンではドットの前に何もない名前のファイルは作れないので、一旦テキストエディタで例えば htaccess.txt など適当な名前のテキストファイルを作って上記コードを書き込みます。そして FTPソフトでサーバーにアップロードしたところでファイル名を .htaccess に直してください。

このやり方の注意点として、まず Windows 付属のメモ帳ソフトではなくテキストエディタで編集してください。フリーソフトでも色々あります。そして文字コードを「UTF-8N」で保存する。これが大事です。なお .htaccess ファイルは新規で作れないだけで、サーバーにあるファイルをパソコン上にダウンロードすれば編集することができます。

ここまで説明の文字数は多いけど、やることはコピペしてちょっと直すだけ。簡単ですね。早速どうぞ。

※以上のやり方でもし Webサイトが表示されなくなった場合は、FTPソフトで .htaccess ファイルにアクセスして追加した部分を削除すれば直ります。死にそうな顔で WordPress を入れ直すような大ピンチではありません。

コメント

タイトルとURLをコピーしました