Почему My_controller не работает на хостинге Linux?
Получил пустую страницу при создании MY_controller и Frontend_controller для моего сайта.
Вот контроллер
class welcome extends Frontend_controller{
public function index(){
$this->load->view('welcome_message');
}
}
И я также создаю Frontend_controller в библиотеках с именем:Frontend_controller.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class Frontend_controller extends MY_controller{
public function __construct(){
parent::__construct();
echo'<script>alert()</script>';
}
}
?>
и я также создаю MY_controller.php в папке Core
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class MY_controller extends CI_controller{
public $data = array();
public function __construct() {
parent::__construct();
}
}
?>
для вызова всего имени класса я также копирую эту функцию из некоторого учебника и сохраняю в config.php
function __autoload($classname) {
if (strpos($classname, 'CI_') !== 0) {
$file = APPPATH . 'libraries/' . $classname . '.php';
if (file_exists($file)) {
@include_once($file);
}
}
}
Наконец я создаю.Htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_APP_PATH} !^$
RewriteRule ^(.*)$ - [E=APP_PATH:%{ENV:REDIRECT_APP_PATH}]
RewriteCond %{ENV:APP_PATH} ^$
RewriteRule ^(.*)$ - [E=APP_PATH:/$1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
</IfModule>
Я изменил и протестировал эту опцию для URI и $config['base_url'] = ''; тоже
| 'AUTO' Default - auto detects
| 'PATH_INFO' Uses the PATH_INFO
| 'QUERY_STRING' Uses the QUERY_STRING
| 'REQUEST_URI' Uses the REQUEST_URI
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'QUERY_STRING';
Вот View welcome_message.php В представлении сложить
HTML-упаковка
Но он работает на моем локальном хосте, почему он не работает на Linux хостинге ** ** Должен ли я сменить хостинг?
В результате я получаю пустые страницы, когда набираю welcome или захожу на мой сайт
Мне очень жаль, друг, я не знаю, как это сделать, потому что я трачу на это больше времени. если я не смогу, я получу письмо с предупреждением от компании.
И спасибо за помощь
1 ответ
Linux чувствительна к регистру ОС, а Windows - нет. Вы должны изменить
MY_controller to MY_Controller
CI_controller to CI_Controller
также.Htaccess должен быть переименован в.htaccess. Пустые страницы php, также известные как "белая страница смерти", обычно означают, что вы столкнулись с фатальной ошибкой php. Вы должны проверять свои журналы всякий раз, когда это происходит, для получения подробного отчета об ошибке (или включить показывать ошибку, если вы НЕ находитесь на рабочем сервере).