#codeigniter #redirect
#codeigniter #перенаправление
Вопрос:
По какой-то причине я не могу определить, перенаправление в codeigniter не работает. Я получаю белый экран смерти.
Я настроил «тестовый» контроллер:
class Test extends Controller {
function Test() {
parent::Controller();
$this->load->helper('url');
}
function index() {
redirect('home','refresh');
}
}
(Я пробовал параметры местоположения и обновления, безрезультатно).
Вот мой файл .htaccess:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index.php|images|css|js|robots.txt|favicon.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Я использовал все это раньше с хорошими результатами. Что-нибудь еще, что я могу проверить?
Спасибо.
Джон
Комментарии:
1. Хороший способ начать — включить все отладочные и информационные сообщения в
config.php
, установить пороговое значение журнала равным 4, удалить сегодняшний файл журнала, если он существует, и запустить ваш скрипт. Вы можете найти некоторую ценную информацию в файле журнала. Также на всякий случай убедитесь, что вы можете получить доступ к test / index в обычном режиме (попробуйте повторить что-нибудь).2. что / где находится ваш
home
контроллер?3. Madmartigan, я попробую то, что ты предлагаешь. Спасибо!
4. Росс, мой домашний контроллер — это домашняя страница сайта. Это работает нормально.
Ответ №1:
Как оказалось, установка порога регистрации на 4 была ответом на выяснение этого. Я смог определить, что я выводил некоторое пространство, что не позволяло перенаправлению работать. Просмотр журналов выявил это.
Спасибо всем за вашу помощь, и спасибо Madmartigan за предложение настройки журнала.
Ответ №2:
Попробуйте добавить? в конце index.php в вашем последнем правиле перезаписи как таковом:
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]
Если это не сработает, попробуйте изменить ваш $config['uri_protocol']
(если для него установлено значение AUTO
) на:
$config['uri_protocol'] = 'REQUEST_URI';