授業

htaccessで特定のIP以外をリダイレクトする

サイトのリニューアルにあたり、古いサイトとリニューアル後のサイトがある場合、
新しいサイトは公開まで隠しておきたいという場面があります。
静的サイトであればテストディレクトリに入れればよい話ですが、WordPressとか使っているとなかなかそれも面倒です。
あらかじめ混在する期間があるとわかっていればよいですが、途中で切り替え期間が長い事がわかると中々大変です。
ルートディレクトリに入っている場合、Basic認証をかけると普通のお客様にもパスワードを求める事になってしまいます。

そこで、クライアントのPC以外のアクセスは現行のサイトに、自分とクライアントのIPだけをリニューアルサイトに転送したいと思います。

で、よくよく考えたんですが(表題に偽りができる事になりますが)律儀にリダイレクトする必要はなく、自分とお客さん以外は全てエラーにしてエラーページを現行の旧サイトにすればよいんじゃないかなと思います。

まず、クライアントのIPがわからないと話にならないので、このサイトとかの僕管理のメールフォームから空送信をしてもらいます。
後はhtaccessの記述。

——-
suPHP_ConfigPath 【WordPressのフルパス】

AddHandler x-httpd-php5.3 .php .phps
# BEGIN WordPress

# END WordPress

order deny,allow
deny from all
allow from 【自分のIPアドレス】
allow from 【相手のIPアドレス】

ErrorDocument 401 【古いサイトアドレス】
ErrorDocument 403 【古いサイトアドレス】
ErrorDocument 404 【古いサイトアドレス】
ErrorDocument 500 【古いサイトアドレス】
——-
括弧内はその場に応じて書き換えます。
これをルートディレクトリに置きます。

order deny,allow(許可/拒否のオーダー)
deny from all(denyは拒否。まずは全てシャットアウトする)
allow from 【自分のIPアドレス】シャットアウトした後、自分のIPを許可する。
allow from 【相手のIPアドレス】クライアントのIPを許可する。

以降は思いつく限りのエラーパターンを列挙し、リニューアル前のサイトにリダイレクトさせます。

以上をうまく使うと、自分のサイトを見られたくない相手のIPを判別すればエラー先としてグロ画像を見させるとかの嫌がらせもできますが、
やらない方が平和的でしょう。

コメントを残す

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