2016-01-16 2 views
2

Есть ли какая-либо настройка сервера/хостинга, которая может привести к простой перенаправлению в Yii2, чтобы не работать?YII2 перенаправление вызывает пустую страницу

Например:

function actionIndex(){ 
    return $this->redirect('other-page'); 
} 

Этот код заканчивается с пустой страницей, не отображаются ошибки или сообщения (Сообщения об ошибках включены), код ответа 200 (Altough yii2 отладчик показывает 302). Все на моем сайте прекрасно работает, но как только код достигает любого -> redirect(), он просто заканчивается пустой страницей. Это происходит только на моем общем хостинге моих клиентов (на моем локальном компьютере и в разработке общий хостинг все работает отлично). Журналы времени выполнения Yii2 не показывают ошибок, ни журналы сервера, на которые мой хостинг не дает мне доступа.

+0

Просто, чтобы быть уверенным ... какой параметр вы вызываете? Является ли массив с '[route]'? Строка с 'URL'? Вы используете псевдоним в этой строке? И к какому новому URL-адресу вы перенаправляетесь? – Clyff

+0

Это не имеет значения. Я попытался использовать строку (http://google.com), массив с маршрутом, yii \ helpers \ Url :: to (...), и все заканчивается пустым. Что касается URL-адреса, я перенаправляюсь на меня, я не перенаправлен нигде неактивно. Когда пользователь вводит example.com/admin, он должен быть перенаправлен на страницу входа в систему example.com/auth/login, но вместо этого он остается в/admin с пустой страницей. – lazyNeighbour

+0

Понятно ... по какой-то причине ваше перенаправление не работает (и поскольку ничего не возвращается, страница выглядит пустым). Можете ли вы попробовать использовать собственный PHP-редирект, например 'header (" Location: http://www.google.com ")', и посмотреть, работает ли он? – Clyff

ответ

1

Оказалось, что это была стандартная ошибка страницы: дополнительная новая пустая строка в начале файла php. Я просмотрел файлы фреймворков, построчно. Когда я прокомментировал, если (headers_sent()) {return;} YII, наконец, выбрал исключение, только чтобы я узнал, что в одном из моих конфигурационных файлов появилась новая строка в начале файла. Исправлена ​​проблема.

0

Убедитесь, что ни один заголовок не отправлен, прежде чем отправлять ответ перенаправления.

Также проверьте кодировку вашего php-файла, если вы используете UTF-8, убедитесь, что он кодируется UTF-8 без спецификации.

-1

Put аргумент в массиве с абсолютным путем:

return $this->redirect(['/other-page']); 

И проверить ваши маршруты в конфигурации, одинаковы для обеих сред?