2015-05-09 2 views
2
  • У меня есть контроллер (страницы) по умолчанию, который перенаправляет страницы на главную (код ниже).
    • Если я повторяю что-то перед перенаправлением, это работает.
    • Если я эхо ничего в домашнем контроллере не показывает ничего, что заставляет меня думать, что он не доходит до домашнего контроллера.
    • Если я заменил перенаправление кодом в домашнем контроллере, то он работает нормально.
    • Код работает нормально на локальном хосте, но всегда дает внутренний сервер Ошибка на сервере.
    • Если я загружаю шаблоны вместо перенаправления, он отлично работает.

Добавление error_reporting (E_ALL | E_WARNING | E_NOTICE); ini_set ('display_errors', TRUE); Не печатает ничего.Codeigniter PHP - Перенаправление, дающее внутреннюю ошибку сервера на реальном сервере

Не имеют доступа к журналам apache.

Страницы контроллера:

<?php 

class Pages extends CI_Controller { 

    public function view($page = 'index') 
    { 

     if (! file_exists(APPPATH.'/views/pages/'.$page.'.php')) 
     { 
      // Whoops, we don't have a page for that! 
      show_404(); 
     } 

     redirect('home', 'refresh'); 

    } 
} 
?> 

Получил .htacces файл со следующим я попытался удалить, что внутри он все еще не работает, но я буду ставить здесь так или иначе:

RewriteEngine On 
    RewriteBase /site/ 

    RewriteCond %{REQUEST_FILENAME} !/(application/views/templates/*/css|js|images/)/ 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

Header set Access-Control-Allow-Origin "http://example.com" 

Мои базовый url в конфигурации сконфигурирован для URL-адреса сайта, например

$config['base_url'] = 'http://example.com/'; 

Не знаю, что еще нужно сделать, y помощь будет оценена.

Спасибо заранее,

+1

Можете ли вы попробовать установить base_url на пустой? И можете ли вы подтвердить, что на вашем сервере включен mod_rewrite? –

+0

Привет, спасибо за ответ. Использование base_url как пустого ничего не меняет. О mod_rewrite это очень хороший отзыв, который не помнил, что локально я должен был включить его. Конфигурации apache, к которым у меня есть доступ, я не вижу, но я отправил запрос на хостинг-сервис, чтобы проверить его. –

+1

Привет, я получил обратную связь от службы хостинга, mod_rewrite включен по умолчанию на каждом хосте, и они сделали тест, и он перенаправлен правильно, чтобы мы могли это исключить. –

ответ

3

Через несколько дней я наконец узнал проблему, вроде глупой ошибки, работает хорошо, если в файле .htaccess я заменить

RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

Для

RewriteRule ^(.*)$ /index.php/$1 [L,QSA] 

Только проблема, стоящая за /index.php, вызывала проблему. Локально работает нормально, но на сервере ..

Спасибо, Джереми за вашу помощь.

+0

Рад, что у тебя это получилось! :) –

+0

Это тоже решило мою проблему, спасибо! – Carl

Смежные вопросы