web-dev-qa-db-ja.com

特定のIPアドレスからのユーザーを除くドメインをリダイレクトする

2つのドメインにサービスを提供するApache Webサーバーがありますが、私の学校では1つのドメインがブロックされています。 1つはありません(今のところ同じWebページ)。学校のIPアドレスからのものでない限り、人々が私の古いドメイン(ブロックされていないドメイン)に接続してリダイレクトされるようにしたいのです。これをどのように行うか、.htaccessと関係があることは知っていますが、これを行う方法はわかりません。

(mod_rewriteを使用して).htaccessファイルの上部付近で次のようなものを試してください。

RewriteEngine On
RewriteCond %{HTTP_Host} olddomain\.com [NC]
RewriteCond %{REMOTE_ADDR} !203\.0\.113\.123
RewriteRule (.*) http://newdomain.com/$1 [R=301,L]

203.0.113.123は、学校の外部IPアドレスです。

これは、他のドメインからドメインへのリダイレクトと同じですが、上記のIPアドレスからの要求を除外するという追加条件があります。

PDATE:メインサーバー設定でこのリダイレクトを行う場合、上記のRewriteRuleをわずかに変更する必要があるかもしれません。 <Directory>コンテナにある場合はそのままにしておき、そうでない場合はサーバー構成(または仮想ホスト)に直接ある場合、次のように変更します。

RewriteRule ^ http://newdomain.com%{REQUEST_URI} [R=301,L]
3
DocRoot