サーバ移行後■リダイレクトループしてしまう

質問全般・改善要望
返信する
anakuma
メンバー
メンバー
記事: 3
登録日時: 2011年1月20日(木) 03:18

サーバ移行後■リダイレクトループしてしまう

投稿記事 by anakuma »

現在稼動中のmodxを既存とは別の上記のサーバへ移行したいのですが、表題の件で困っております。
どのようなケースで発生するケースかご教授頂けると嬉しいです。

サーバ:infinitoplus
OS:windows IIS
modxバージョン:1.0.2J
ブラウザ:chrome
該当ページ:http://sub0000158262.ms.hmk-temp.com/

状況:

①データベースとサイトデータをそのまま移行。

データベースの中身はいじっていません。
サイトデータは「config.inc.php」のデータベース情報と、TOPに置いてある「.htaccess」のみ新しいサイト情報に変更しました。

更新した「.htaccess」は次の通りです。

----------
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^sub0000158262\.ms\.hmk-temp\.com [NC]
RewriteRule (.*) http://sub0000158262.ms.hmk-temp.com/$1 [R=301,L]
---------

上記のURLを別サイトに変更すると正常にリダイレクトします。

②管理画面へのログインおよび保存等も可能。
③サイトをプレビューすると、「このウェブページにはリダイレクト ループが含まれています。」という表記になります。

よろしくお願いします。
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: サーバ移行後■リダイレクトループしてしまう

投稿記事 by soushi »

soushiです。

管理画面だけがループしないという事なので、/manager/の下に.htaccessファイルがあったりしませんか?
もしファイルがあった場合、mod_rewriteがoffになってたら、別のルールが書いてあったりするかもしれません。

mod_rewriteがうまく動作しないようでしたら一度、HTTP_HOSTの中身を確認してみたらどうでしょうか。
modxでしたら管理画面の「レポート」→「システム情報」にあるphpInfo()を見れば確認できると思います。

ちなみにmod_rewriteの設定意図としては
「IPアドレス直打ち、もしくは違うドメインから名前解決をしてアクセスしてきた場合、強制的にsub0000158262.ms.hmk-temp.comでアクセスしてもらうようにリダイレクトさせる」
という事ですよね。
どうしてもうまく動かない場合、この設定自体行わないという手もあります。
その代わり、IPアドレス直打ち等でもサイトにアクセスできるようになってしまいますが。。。
anakuma
メンバー
メンバー
記事: 3
登録日時: 2011年1月20日(木) 03:18

Re: サーバ移行後■リダイレクトループしてしまう

投稿記事 by anakuma »

soushiさん、お返事ありがとうございます。

>管理画面だけがループしないという事なので、/manager/の下に.htaccessファイルがあったりしませんか?

ありました。
中身を確認しましたところ、「RewriteEngine Off」のみ有効になっていました。

>mod_rewriteがうまく動作しないようでしたら一度、HTTP_HOSTの中身を確認してみたらどうでしょうか。

確認しましたところ、「HTTP_HOST:sub0000158262.ms.hmk-temp.com」となっていました。
これは正常ということでいいのですよね?

>ちなみにmod_rewriteの設定意図としては「IPアドレス直打ち、もしくは違うドメインから名前解決をしてアクセスしてきた場合、強制的にsub0000158262.ms.hmk-temp.comでアクセスしてもらうようにリダイレクトさせる」という事ですよね。

はい、その意図になります。
ちなみに、TOPおよびmanagerフォルダの.htaccessを削除しても、管理画面は有効、ページ表示は全てリダイレクトになってしまいます。

以上、頂きましたご提案を試してみました結果です。
引き続きご教授お願いできると幸いです。
何卒よろしくお願いします。
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: サーバ移行後■リダイレクトループしてしまう

投稿記事 by soushi »

こんばんわです。

すいません、もう一点確認したいことがあります。
WebサーバがapacheではなくIISなので、もしかしたらISAPI_Rewrite等別の互換ソフトを利用しているかもしれません。
ISAPI _Rewriteはmod_rewriteと似てますが、完全に互換性があるわけではなさそうです。
(実際、使ったことないのですが(^^;))

一度確認していただいてもよろしいでしょうか。
ちなみにISAPI _Rewriteのサイトは次のURLです。

http://www.isapirewrite.com/

中にフォーラムがあって、否定の書き方質問がありました。
ご参考までに 8-)

http://www.helicontech.com/forum/12080- ... ition.html
anakuma
メンバー
メンバー
記事: 3
登録日時: 2011年1月20日(木) 03:18

Re: サーバ移行後■リダイレクトループしてしまう

投稿記事 by anakuma »

お返事ありがとうございました。

ご指摘頂きましたISAPI_Rewriteが関係ありそうです。
こちらのFAQに記載がございましたので下記に抜粋部分を添付致します。
http://winfaq.isle.jp/FaqItem?i_faqId=2 ... tegoryId=0
こちらを見る限り設定が間違っているという認識になるのでしょうか。
今一度状況をまとめてみました。
引き続きよろしくいお願い致します。

症状:
RewriteCondをホスト以外に変更すると管理画面もリダイレクトループになります。
RewriteCondを当サイトのホストにしてRewriteRuleを他のサイトにすると正常にリダイレクトし、当サイトにするとリダイレクトループとなり、同様に管理画面以外の当ホスト内のほかのページもリダイレクトループになります。
管理画面は/manager/.htaccessのRewriteEngine Onでリダイレクトループしません。

当サイトの.htaccessの記載は次の通りです。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^sub0000158262\.ms\.hmk-temp\.com [NC]
RewriteRule (.*) http://sub0000158262.ms.hmk-temp.com/$1 [R=301,L]

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/index.html$ index.php?q=$1 [L,R=301,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

---------FAQ抜粋----------
.htaccessファイルは本来Apacheウェブサーバー環境下で実行可能なファイルです。
Windows Hosting Suite にて提供しております、ウェブサーバーは、
IISウェブサーバーとなり、.htaccess は ISAPI_Rewrite の環境下でのみ
ご利用いただくことが可能です。

利用方法

1.テキストエディタ等にて、ISAPI_Rewriteのルールを記述する
2.ファイル名を「.htaccess」として、ローカルPCに保存する
3.ファイルマネージャもしくはFTPクライアントにてサーバーに接続する
4..htaccessを反映させたいディレクトリ直下に.htaccessファイルをアップロードする
5.完了
-----------------------
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: サーバ移行後■リダイレクトループしてしまう

投稿記事 by soushi »

soushiです。
anakuma さんが書きました: ご指摘頂きましたISAPI_Rewriteが関係ありそうです。
こちらのFAQに記載がございましたので下記に抜粋部分を添付致します。
http://winfaq.isle.jp/FaqItem?i_faqId=2 ... tegoryId=0
こちらを見る限り設定が間違っているという認識になるのでしょうか。
恐らく間違っているのではないかと思われます。

コード: 全て選択

RewriteCond %{HTTP_HOST} !^sub0000158262\.ms\.hmk-temp\.com [NC]
ISAPI_Rewriteではマッチの否定をする時に上記の書き方はできないみたいです。
前の投稿にも載せたURLですが、こちらの書き方を真似てみたらどうでしょうか?

[negative host condition]
http://www.helicontech.com/forum/12080- ... ition.html
返信する