2014-09-23 4 views
1

Я последовал следующий урок: Yii 1.1: URL management for Websites with secure and nonsecure pagesForce Https для пользовательских страниц

Это код из /protected/config/main.php

'urlManager'=>array(
    'class' => 'UrlManager', 
    'hostInfo' => 'http://goliv.me', 
    'secureHostInfo' => 'https://goliv.me', 
    'secureRoutes' => array(
     'site/booking', // site/login action 
    ), 
    'urlFormat' => 'path', 
    'showScriptName' => false, 
    'caseSensitive' => false, 
    'urlSuffix' => '.html', 
    'rules' => array(
     '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
     '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
     '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
     '<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>' 
    ), 
), 

и это мой .htaccess файл:

RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 

Я столкнулся следующие проблема только с site/booking:

Этот сайт имеет петлю перенаправлять

Когда я удалить эту часть:

'secureRoutes' => array(
    'site/booking' 
), 

Все работает без проблем.

Любые решения?

+0

Пожалуйста, покажите нам свое действие с контроллером. –

ответ

0

Метод не исправляет возврат true, если в конце маршрута есть косая черта, поэтому вызов сайта/бронирование/не вернется.

class UrlManager extends CUrlManager 
{ 
................ 
/** 
    * @param string the URL route to be checked 
    * @return boolean if the give route should be serviced in SSL mode 
    */ 
    protected function isSecureRoute($route) 
    { 
     if ($this->_secureMap === null) { 
      foreach ($this->secureRoutes as $r) { 
       $this->_secureMap[strtolower($r)] = true; 
      } 
     } 
     $route = strtolower($route); 
     if (isset($this->_secureMap[$route])) { 
      return true; 
     } else { 
      return ($pos = strpos($route, '/')) !== false 
       && isset($this->_secureMap[substr($route, 0, $pos)]); 
     } 
    } 
+0

Благодарим вас за ответ, но можете ли вы уточнить? – Saleh