2013-08-22 7 views
-4

В CakePHP v2.3.8 после входа пользователя в систему я хочу отправить их на страницу, к которой они пытались получить доступ. CakePHP бежит из поддиректории (BaseUrl в примере ниже):

$this->redirect($this->Auth->redirectUrl()); посылает мне:

http://example.com/baseurl/baseurl/controller/action 

Он должен послать меня:

http://example.com/baseurl/controller/action 

ли кто-либо получать дублируется базовый url в своих переадресациях? Кто-нибудь знает, как это исправить? Это мой первый раз, используя CakePHP, поэтому, пожалуйста, дайте мне знать, если я не задаю правильный вопрос или не предоставит необходимую информацию. Спасибо!

Примечание: Я вижу аналогичное, как a bug in RC version 2.4. Тем не менее, я запускаю v2.3.8, поэтому я не думаю, что это точная проблема. Исправление в this commit выглядит идентично моему коду в версии 2.3.

+0

Нам нужно будет увидеть какой-то код, прежде чем мы сможем даже начать *, чтобы угадать, что происходит. –

+1

По-видимому, эта проблема аналогична документированной ошибке в версии RC: https://cakephp.lighthouseapp.com/projects/42648/tickets/3938-this-redirectthis-auth-redirecturl-broken –

+0

«это кто-то еще с этой проблемой? " не является вопросом, подходящим для переполнения стека – AD7six

ответ

2

Вопрос заключается с линией 680 Lib/Cake/Controller/Компонент/AuthComponent.php

return Router::url($redir); 

Изменение его на следующее (что было обновление в 2.3.9) фиксирует это:

return Router::url($redir + array('base' => false)); 

Как делает его изменения к этому (который является обновлением в 2.4):

return Router::normalize($redir, false); 

Посмотреть сообщение коммита здесь: https://github.com/cakephp/cakephp/commit/8133f72

Очевидно, что редактирование основных файлов CakePHP не является хорошей идеей, поэтому я исправил проблему до 2.3.9, чтобы исправить проблему.