最新版 |
編集中の文章 |
行84: |
行84: |
| | | |
| === 管理側SSLを有効化するとリダイレクトループが起きる === | | === 管理側SSLを有効化するとリダイレクトループが起きる === |
− |
| |
− | さくらサーバの場合(2017/04/7時点)は、httpsへwwwアリでアクセスしてもHTTP_HOST変数にはwwwなしのドメイン情報がセットされる仕様に変わっているようです。
| |
− |
| |
− | https://www.example.com/ の場合、 HTTP_HOST example.com となる。
| |
− |
| |
− | 通常だったら HTTP_HOST www.example.com になるはず。
| |
− |
| |
− | そこで、対応方法としては
| |
| | | |
| - htaccess で調整する。 | | - htaccess で調整する。 |
行118: |
行110: |
| RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$ | | RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$ |
| RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] | | RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
− | </pre>
| |
− |
| |
− |
| |
− | * baserCMS3系の場合
| |
− |
| |
− | 上記の対応のみでOK
| |
− |
| |
− | * baserCMS4系の場合
| |
− |
| |
− | コアの処理で管理画面の場合にadminSslの値と関係なく
| |
− | リダイレクトしようとしている箇所があるので、その部分をコメントアウトする。
| |
− |
| |
− | lib/Baser/Controller/BcAppController.php 260行あたり
| |
− |
| |
− |
| |
− | <pre>
| |
− |
| |
− | public function beforeFilter() {
| |
− | parent::beforeFilter();
| |
− |
| |
− | $isRequestView = $this->request->is('requestview');
| |
− | $isUpdate = $this->request->is('update');
| |
− | $isAdmin = $this->request->is('admin');
| |
− | $isInstall = $this->request->is('install');
| |
− | $isMaintenance = $this->request->is('maintenance');
| |
− |
| |
− | // CUSTOMIZE DELETE 2017/04/07
| |
− | // ※ さくらサーバの場合の不具合のため、管理画面リダイレクト処理を削除(.htaccessにて対応)
| |
− | // さくらの共有サーバーでSNIを使ってSSLを導入の場合、
| |
− | // https://www.example.com/ でアクセスしてもHTTP_HOST = example.com となり、siteUrl()の値が正しくない。
| |
− | // 通常のサーバではHTTP_HOST = www.example.com がセットされている。
| |
− | // >>>
| |
− | // // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト
| |
− | // if($isAdmin) {
| |
− | // if($this->request->is('ssl')) {
| |
− | // $siteUrl = Configure::read('BcEnv.sslUrl');
| |
− | // } else {
| |
− | // $siteUrl = Configure::read('BcEnv.siteUrl');
| |
− | // }
| |
− | // if($siteUrl && siteUrl() != $siteUrl) {
| |
− | // $this->redirect($siteUrl . preg_replace('/^\//', '', Router::reverse($this->request, false)));
| |
− | // }
| |
− | // }
| |
− | // <<<
| |
− |
| |
− | // メンテナンス
| |
− | if (!empty($this->siteConfigs['maintenance']) && (Configure::read('debug') < 1) && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {
| |
− | if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {
| |
− | return;
| |
− | } else {
| |
− | $redirectUrl = '/maintenance';
| |
− | if ($this->request->params['Site']['alias']) {
| |
− | $redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;
| |
− | }
| |
− | $this->redirect($redirectUrl);
| |
− | }
| |
− | }
| |
| </pre> | | </pre> |
| | | |