Я устанавливаю в первый раз компонент Auth на своем сайте, и все работает нормально, за исключением случаев, когда я пытаюсь получить доступ к закрытой странице. Вместо того, чтобы перенаправляться на http://localhost/MySite/users/login
, я перенаправляюсь на http://localhost/MySite/users/users/login
, имя контроллера повторяется на url. Как можно устранить эту проблему?
Я использую CakePhp 2.4.4
AppController
class AppController extends Controller { public $components = array('DebugKit.Toolbar', 'Session','Auth' => array( 'loginRedirect'=> array( 'controller' => 'admins', 'action' => 'admin_index' ), 'logoutRedirect' => array( 'controller' => 'users', 'action' => 'login' ), 'loginAction' => array( 'controller' => 'users', 'action' => 'login', 'plugin' => 'users' ), 'authError' => 'Não tem permissão para aceder a esta área. Por favor faça login.', 'authenticate' => array( 'Form' => array( 'fields' => array('username' => 'username', 'password' => 'password' ), 'userModel' => 'User' ) ), 'authorize' =>array('Controller' ) ) ); public function beforeFilter(){ $this->Auth->allow('index','ShowImages','ShowShowbill','ShowVideos','ShowContactUs','contact','login','DisplayMusic','DisplayEntertainment','DisplayPromotion','DisplayStaff','DisplayEquipments'); }
В компоненте Auth вам нужно добавить «unauthorizedRedirect», иначе Cake пытается перенаправить на / {app-directory} (вчера это давало мне головную боль).
public $components = array( //your other components 'Auth' => array( //your other options for Auth 'unauthorizedRedirect' => '/home' ) );
Это приведет к тому, что любой пользователь попытается получить доступ к странице, на которой они не должны быть разрешены для «yourDomain / home».