プロが教える店舗&オフィスのセキュリティ対策術

.htaccess でサイトの引越しを試みましたが失敗して無限ループに入ってしまい、サーバ内のホームページへアクセスすることができなくなりました。
いろいろ調べてみてもどうしてもわからないので質問させてもらっています。わかる方がいましたら解決方法を教えていただきたいです。よろしくお願いします。

さくらインターネットのサーバ内に2つのホームページをそれぞれのドメインで設置しています。ドメイン名は例、( )内は(サーバ内ディレクトリ)です。
ドメイン1:example1.com (home/example/www) 
ドメイン2:example2.com (home/example/www/NEW)

ドメイン1の階層を一つ下に移動したかったのでOLDというフォルダを作り、www 階層のドメイン1関連ファイルを全てOLDに移動し、.htacccess をwwwの階層に設置しました。記述内容は以下です。

     RewriteEngine on
     RewriteRule (.*) http://www.example2.com/ [R=301,L]

htaccess のリダイレクトの書き方をネットで検索し、なんとなくマネて書きました。移動したいサイトはドメイン1だったのですが、間違ってドメイン2を記述内に書き込んでしまいサーバへアップロードしました。ドメイン1サイトへアクセスすると、
「ページの自動転送設定が正しくありません。このアドレスへのリクエストに対するサーバの自動転送設定がループしています。」
と表示がでて、アドレスバーには、www.example2.com/NEW/NEW/NEW/NEW/NEW/NEW/NEW/NEW/ と表示されました。慌てて htaccess をサーバから削除して、ドメイン1関連ファイルを全て元の位置に戻しましたが、アクセスしても同じようにループに入ったアドレスが表示されるようになりました。ドメイン2へアクセスして同じループに入ってしまいます。

どうしたらこのループを抜けれるのでしょうか?
ドメイン1は サーバ内の home/example/www/OLD、ドメイン2はそのまま(home/example/www/NEW)へ移動したいです。どう htaccessに記述すれば、(www.)example1.comへアクセスした際にNEWフォルダ内のindex.html へリダイレクトをかけれますか?(www.)example2.comへのアクセスができるようになるためにはどうしたら良いでしょうか?
ちなみにサイトの移動はhtmlファイルが多いので .htaccess で行いたいです。

本当にどうすれば良いかわからず困っています。
わかる方がいましたら、宜しくお願い致します。

A 回答 (1件)

同じサーバーの/home/example配下で2つのドメインを別々の内容で共存と言うことでしょうか。



質問に書いてある記述が場所により違い、矛盾してるので何をしたいか不明ですが、アドバイスとしては、サンプルだけ書いておきます。

・R=301をつけると、ブラウザが書き換えられたURLで再度アクセスするので、同じ条件にはまって、ループするので、リダイレクトで無く単にパスの書き換えでOK
サンプル:
RewriteRule (.*) /NEW/$1 [L]

・ドメイン1とドメイン2を区別してそれぞれに異なったリライトが必要
サンプル:
RewriteCond %{HTTP_HOST} !^www.example1.com$

この回答への補足

notnotさん、早速のアドバイス本当にありがとうございます!

説明がわかりづらくてすみませんっ。
同じサーバ内 /home/example配下で2つのドメインを別々の内容が共存しています(階層は別)。
やりたかったことは、ドメイン1(example1.com)へのアクセスを OLD フォルダの中へ引越したindex.html へリダイレクトをかけたい、ということです。

教えて頂いた方法を早速試させていただきましたが、恐らく自分のやり方が悪く、状況が改善しません。アドレスバーには、www.example2.com/NEW/NEW/NEW/NEW/NEW/NEW/NEW/NEW/ と表示され、ドメイン1と2のどちらにもアクセスできません。まだループしている様です。
.htaccessをサーバから削除して後も同じ現象がみられます。

以下の方法はどこが間違っていますでしょうか?
----------------------------------------------
.htaccess に

   RewriteEngine On
   RewriteCond %{HTTP_HOST} !^www.example1.com$
   RewriteRule (.*) /OLD/$1 [L]

を記述し、サーバの/home/example/www にアップロード
少し時間を置いてから数度トライしてみるも、結果は同様
----------------------------------------------

他にもこのアドバイスを中心に試してみましたがうまくいきませんでした。
ちなみに、さくらインターネットのドメイン設定では、
ドメイン1のパス   /
ドメイン2のパス   /NEW
となっています。
ご面倒をおかけしておりますが、よろしくお願い致します!

補足日時:2013/03/26 10:32
    • good
    • 0
この回答へのお礼

notnotさん、

ブラウザのクッキーを削除したらアドバイスいただいた記述で成功しました!
特に
>ドメイン1とドメイン2を区別してそれぞれに異なったリライトが必要
というところは非常に助かりました。
有難うございました!

お礼日時:2013/03/27 03:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!