Index: /branches/version-2_5-dev/data/class/SC_Response.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_Response.php	(revision 19817)
+++ /branches/version-2_5-dev/data/class/SC_Response.php	(revision 19832)
@@ -131,48 +131,87 @@
     }
 
-    function sendRedirect($location) {
-        if (preg_match("/(" . preg_quote(HTTP_URL, '/')
-                          . "|" . preg_quote(HTTPS_URL, '/') . ")/", $location)) {
-
-            $netURL = new Net_URL($location);
-            $arrQueryString = $netURL->querystring;
-
+    /**
+     * @param string $location 「アプリケーションルートからの相対パス」「現在のURLからの相対パス」「URL」のいずれか
+     * @return void
+     * @static
+     */
+    function sendRedirect($location, $arrQueryString = array(), $inheritQueryString = false, $useSsl = null) {
+
+        // アプリケーションルートからの相対パス
+        if ($location[0] === '/') {
+            if (!is_bool($useSsl)) {
+                $useSsl = SC_Utils_Ex::sfIsHTTPS();
+            }
+            $url = ($useSsl ? HTTPS_URL : HTTP_URL) . substr($location, 1);
+        }
+        // URL の場合
+        elseif (preg_match('/^https?:/', $location)) {
+            $url = $location;
+            if (is_bool($useSsl)) {
+                if ($useSsl) {
+                    $pattern = '/^' . preg_quote(HTTP_URL, '/') . '(.*)/';
+                    $replacement = HTTPS_URL . '\1';
+                    $url = preg_replace($pattern, $replacement, $url);
+                }
+                else {
+                    $pattern = '/^' . preg_quote(HTTPS_URL, '/') . '(.*)/';
+                    $replacement = HTTP_URL . '\1';
+                    $url = preg_replace($pattern, $replacement, $url);
+                }
+            }
+        }
+        // 現在のURLからの相対パス
+        else {
+            if (!is_bool($useSsl)) {
+                $useSsl = SC_Utils_Ex::sfIsHTTPS();
+            }
+            $netUrl = new Net_URL($useSsl ? HTTPS_URL : HTTP_URL);
+            $netUrl->path = dirname($_SERVER['PHP_SELF']) . '/' . $location;
+            $url = $netUrl->getUrl();
+        }
+
+        $netUrl = new Net_URL($url);
+        $arrQueryString = array_merge($netUrl->querystring, $arrQueryString);
+
+        if ($inheritQueryString) {
             if (!empty($_SERVER['QUERY_STRING'])) {
-                $netURL->addRawQueryString($_SERVER['QUERY_STRING']);
-            }
-
-            foreach ($arrQueryString as $key => $val) {
-                $netURL->addQueryString($key, $val);
-            }
-
+                $netUrl->addRawQueryString($_SERVER['QUERY_STRING']);
+            }
+        }
+
+        foreach ($arrQueryString as $key => $val) {
+            $netUrl->addQueryString($key, $val);
+        }
+
+        $url = $netUrl->getURL();
+
+        $pattern = '/^(' . preg_quote(HTTP_URL, '/') . '|' . preg_quote(HTTPS_URL, '/') . ')/';
+        if (preg_match($pattern, $url)) {
             $session = SC_SessionFactory::getInstance();
             if (SC_MobileUserAgent::isMobile() || $session->useCookie() == false) {
-                $netURL->addQueryString(session_name(), session_id());
-            }
-
-            $netURL->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken());
-            header("Location: " . $netURL->getURL());
-            exit;
-        }
-        return false;
-    }
-
-    function reload($queryString = array(), $removeQueryString = false) {
+                $netUrl->addQueryString(session_name(), session_id());
+            }
+
+            $netUrl->addQueryString(TRANSACTION_ID_NAME, SC_Helper_Session_Ex::getToken());
+            $url = $netUrl->getURL();
+        }
+
+        header("Location: $url");
+        exit;
+    }
+
+    /**
+     * @static
+     */
+    function reload($arrQueryString = array(), $removeQueryString = false) {
         // 現在の URL を取得
-        $netURL = new Net_URL($_SERVER['REQUEST_URI']);
-
-        if ($removeQueryString) {
-            $netURL->querystring = array();
-            $_SERVER['QUERY_STRING'] = ''; // sendRedirect() での処理用らしい
-        }
-
-        // QueryString を付与
-        if (!empty($queryString)) {
-            foreach ($queryString as $key => $val) {
-                $netURL->addQueryString($key, $val);
-            }
-        }
-
-        $this->sendRedirect($netURL->getURL());
+        $netUrl = new Net_URL($_SERVER['REQUEST_URI']);
+
+        if (!$removeQueryString) {
+            $arrQueryString = array_merge($netUrl->querystring, $arrQueryString);
+        }
+        $netUrl->querystring = array();
+
+        $this->sendRedirect($netUrl->getURL(), $arrQueryString);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(revision 19832)
@@ -145,5 +145,5 @@
                 $objSiteSess->setRegistFlag();
                 // ダウンロード商品有りの場合は、支払方法画面に転送
-                $this->objDisplay->redirect($this->getLocation("./payment.php"), array());
+                SC_Response_Ex::sendRedirect('payment.php');
                 exit;
             }
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_DelivAddr.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_DelivAddr.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_DelivAddr.php	(revision 19832)
@@ -140,5 +140,5 @@
                 break;
             default:
-                $this->objDisplay->redirect($this->getLocation("./deliv.php"));
+                SC_Response_Ex::sendRedirect('deliv.php');
                 exit;
             }
Index: /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php	(revision 19807)
+++ /branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php	(revision 19832)
@@ -103,8 +103,8 @@
                 $objSiteSess->setRegistFlag();
                 //カート内が全てダウンロード商品の場合は支払方法設定画面に転送
-                $this->objDisplay->redirect($this->getLocation("./payment.php"), array());
+                SC_Response_Ex::sendRedirect('payment.php');
             } else {
                 // お届け先設定画面に転送
-                $this->objDisplay->redirect($this->getLocation("./deliv.php"), array());
+                SC_Response_Ex::sendRedirect('deliv.php');
             }
             exit;
@@ -254,8 +254,8 @@
                 $objSiteSess->setRegistFlag();
                 //カート内が全てダウンロード商品の場合は支払方法設定画面に転送
-                $this->objDisplay->redirect($this->getLocation("./payment.php"), array());
+                SC_Response_Ex::sendRedirect('payment.php');
             } else {
                 // お届け先設定画面に転送
-                $this->objDisplay->redirect($this->getLocation("./deliv.php"), array());
+                SC_Response_Ex::sendRedirect('deliv.php');
             }
             exit;
Index: /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php	(revision 19832)
@@ -125,5 +125,5 @@
             // 新規作成
         case "new_page":
-            $this->objDisplay->redirect($this->getLocation("./csv_sql.php"));
+            $this->objDisplay->reload(array(), true);
             exit;
             break;
@@ -132,5 +132,5 @@
         case "delete":
             $this->lfDelData($sql_id);
-            $this->objDisplay->redirect($this->getLocation("./csv_sql.php"));
+            $this->objDisplay->reload(array(), true);
             exit;
             break;
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php	(revision 19807)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php	(revision 19832)
@@ -165,8 +165,10 @@
 
                 $bloc_id = $arrBlocData[0]['bloc_id'];
-                $this->objDisplay->redirect($this->getLocation("./bloc.php",
-                                            array("bloc_id" => $bloc_id,
-                                                  "device_type_id" => $device_type_id,
-                                                  "msg" => "on")));
+                $arrQueryString = array(
+                    'bloc_id' => $bloc_id,
+                    'device_type_id' => $device_type_id,
+                    'msg' => 'on',
+                );
+                $this->objDisplay->reload($arrQueryString, true);
                 exit;
             }else{
@@ -203,6 +205,5 @@
                 }
             }
-            $this->objDisplay->redirect($this->getLocation("./bloc.php",
-                                                           array("device_type_id" => $device_type_id)));
+            $this->objDisplay->reload(array("device_type_id" => $device_type_id), true);
             exit;
             break;
@@ -269,5 +270,5 @@
             $arrUpdData['bloc_id'] = $objQuery->nextVal('dtb_bloc_bloc_id');
             $arrUpdData['device_type_id'] = $device_type_id;
-            $arrUpdData['create_date'] = "now()";
+            $arrUpdData['update_date'] = "now()";
             $ret = $objQuery->insert('dtb_bloc', $arrUpdData);
         } else {
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design.php	(revision 19807)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design.php	(revision 19832)
@@ -121,5 +121,5 @@
         // 新規ブロック作成
         case 'new_bloc':
-            $this->objDisplay->redirect($this->getLocation("./bloc.php", array("device_type_id" => $device_type_id)));
+            SC_Response_Ex::sendRedirect('bloc.php', array("device_type_id" => $device_type_id));
             exit;
             break;
@@ -127,5 +127,5 @@
         // 新規ページ作成
         case 'new_page':
-            $this->objDisplay->redirect($this->getLocation("./main_edit.php", array("device_type_id" => $device_type_id)));
+            SC_Response_Ex::sendRedirect('main_edit.php', array("device_type_id" => $device_type_id));
             exit;
             break;
@@ -214,5 +214,5 @@
                 $_SESSION['preview'] = "ON";
 
-                $this->objDisplay->redirect($this->getLocation(URL_PATH . "preview/" . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"])));
+                SC_Response_Ex::sendRedirect('/preview/' . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"]));
                 exit;
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 19832)
@@ -174,5 +174,5 @@
             $objFileManager->sfDeleteDir($css_path);
         }
-        $this->objDisplay->redirect($this->getLocation("./css.php"));
+        $this->objDisplay->reload(array(), true);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php	(revision 19807)
+++ /branches/version-2_5-dev/data/class/pages/admin/design/LC_Page_Admin_Design_MainEdit.php	(revision 19832)
@@ -215,5 +215,5 @@
         }
         $_SESSION['preview'] = "ON";
-        $this->objDisplay->redirect($this->getLocation(URL_PATH . "preview/" . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"])));
+        SC_Response_Ex::sendRedirect('/preview/' . DIR_INDEX_URL, array("filename" => $arrPageData[0]["filename"]));
     }
 
@@ -248,8 +248,10 @@
             $this->lfCreateFile($cre_tpl, $_POST['tpl_data']);
 
-            $this->objDisplay->redirect($this->getLocation("./main_edit.php",
-                                    array("page_id" => $arrData['page_id'],
-                                          "device_type_id" => $device_type_id,
-                                          "msg"     => "on")));
+            $arrQueryString = array(
+                "page_id" => $arrData['page_id'],
+                "device_type_id" => $device_type_id,
+                "msg"     => "on",
+            );
+            $this->objDisplay->reload($arrQueryString, true);
             exit;
         } else {
@@ -340,6 +342,5 @@
     function lfDeletePageData($page_id, $device_type_id){
         $this->objLayout->lfDelPageData($page_id, $device_type_id);
-        $this->objDisplay->redirect($this->getLocation("./main_edit.php",
-                                                       array("device_type_id" => $device_type_id)));
+        $this->objDisplay->reload(array("device_type_id" => $device_type_id), true);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Logout.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Logout.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/admin/LC_Page_Admin_Logout.php	(revision 19832)
@@ -55,5 +55,5 @@
         $objSess->logout();
 
-        $this->objDisplay->redirect($this->getLocation(URL_PATH . ADMIN_DIR . DIR_INDEX_URL));
+        $this->objDisplay->redirect('/' . ADMIN_DIR . DIR_INDEX_URL);
     }
 
Index: /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php	(revision 19832)
@@ -178,5 +178,5 @@
         }
         if ($_GET['mode'] == 'now') {
-            $this->objDisplay->redirect($this->getLocation(URL_PATH . ADMIN_DIR . 'mail/history.php'));
+            $this->objDisplay->redirect('/' . ADMIN_DIR . 'mail/history.php');
         }
         echo "complete\n";
Index: /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php	(revision 19807)
+++ /branches/version-2_5-dev/data/class/pages/admin/mail/LC_Page_Admin_Mail.php	(revision 19832)
@@ -364,7 +364,7 @@
                     if (MELMAGA_SEND) {
                         if (MELMAGA_BATCH_MODE) {
-                            $this->objDisplay->redirect($this->getLocation(URL_PATH . ADMIN_DIR . 'mail/history.php'));
+                            $this->objDisplay->redirect('/' . ADMIN_DIR . 'mail/history.php');
                         } else {
-                            $this->objDisplay->redirect($this->getLocation(URL_PATH . ADMIN_DIR . 'mail/sendmail.php', array('mode' => 'now', 'send_id' => $sendId)));
+                            $this->objDisplay->redirect('/' . ADMIN_DIR . 'mail/sendmail.php', array('mode' => 'now', 'send_id' => $sendId));
                         }
                         exit;
Index: /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/contact/LC_Page_Contact.php	(revision 19832)
@@ -171,5 +171,5 @@
             $this->lfSendMail($this);
             // 完了ページへ移動する
-            $this->objDisplay->redirect($this->getLocation("./complete.php", array(), true));
+            SC_Response_Ex::sendRedirect('complete.php');
             exit;
         } else {
Index: /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist.php	(revision 19812)
+++ /branches/version-2_5-dev/data/class/pages/regist/LC_Page_Regist.php	(revision 19832)
@@ -89,6 +89,5 @@
                 $objCustomer->setLogin($arrRet[0]['email']);
                 $etc_val['ci'] = $arrRet[0]['customer_id'];
-                $_SERVER['QUERY_STRING'] = NULL;
-                $this->objDisplay->redirect($this->getLocation("./complete.php", $etc_val));
+                SC_Response_Ex::sendRedirect('complete.php', $etc_val);
                 exit;
             }
Index: /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php	(revision 19830)
+++ /branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php	(revision 19832)
@@ -312,5 +312,5 @@
                     // 完了ページに移動させる。
                     $customer_id = $objQuery->get("customer_id", "dtb_customer", "secret_key = ?", array($this->uniqid));
-                    $this->objDisplay->redirect($this->getLocation("./complete.php", array("ci" => $customer_id)));
+                    SC_Response_Ex::sendRedirect('complete.php', array("ci" => $customer_id));
                     exit;
                     
Index: /branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	(revision 19832)
@@ -106,5 +106,5 @@
             if(count($arrErr) == 0) {
                 if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
-                    $this->objDisplay->redirect($this->getLocation(URL_PATH, array(), false));
+                    $this->objDisplay->redirect('/', array(), false, true);
                     exit;
                 } else {
@@ -132,7 +132,7 @@
             //マイページログイン中はログイン画面へ移行
             if ($mypage_url_search == 2){
-                $this->objDisplay->redirect($this->getLocation(URL_PATH . "mypage/login.php", array(), false));
+                $this->objDisplay->redirect('/mypage/login.php');
             }else{
-                $this->objDisplay->redirect($this->getLocation(URL_PATH, array(), false));
+                $this->objDisplay->redirect('/', array(), false, true);
             }
             exit;
Index: /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Review.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Review.php	(revision 19805)
+++ /branches/version-2_5-dev/data/class/pages/products/LC_Page_Products_Review.php	(revision 19832)
@@ -153,5 +153,5 @@
                     $this->lfRegistRecommendData($arrForm, $arrRegistColumn);
                     //レビュー書き込み完了ページへ
-                    $this->objDisplay->redirect($this->getLocation("./review_complete.php", array(), true));
+                    SC_Response_Ex::sendRedirect('review_complete.php');
                     exit;
                 }
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Refusal.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Refusal.php	(revision 19807)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Refusal.php	(revision 19832)
@@ -110,5 +110,5 @@
             $objCustomer->EndSession();
             //完了ページへ
-            $this->objDisplay->redirect($this->getLocation("./refusal_complete.php"));
+            SC_Response_Ex::sendRedirect('refusal_complete.php');
             exit;
         }
@@ -172,5 +172,5 @@
             $objCustomer->EndSession();
             //完了ページへ
-            $this->objDisplay->redirect($this->getLocation("./refusal_complete.php"));
+            SC_Response_Ex::sendRedirect('refusal_complete.php');
             exit;
         }
Index: /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php
===================================================================
--- /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php	(revision 19807)
+++ /branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php	(revision 19832)
@@ -184,5 +184,5 @@
 
                 //完了ページへ
-                $this->objDisplay->redirect($this->getLocation("./change_complete.php"));
+                SC_Response_Ex::sendRedirect('change_complete.php');
                 exit;
             } else {
@@ -400,5 +400,5 @@
                         $this->objCustomer->updateSession();
                         //完了ページへ
-                        $this->objDisplay->redirect($this->getLocation("./change_complete.php"));
+                        SC_Response_Ex::sendRedirect('change_complete.php');
                         exit;
                     } else {
Index: /branches/version-2_5-dev/data/class/SC_Display.php
===================================================================
--- /branches/version-2_5-dev/data/class/SC_Display.php	(revision 19823)
+++ /branches/version-2_5-dev/data/class/SC_Display.php	(revision 19832)
@@ -81,5 +81,5 @@
      */
     function redirect($location){
-        $this->response->sendRedirect($location);
+        $this->response->sendRedirect($location, array(), true);
     }
 
