Я разрабатываю веб-приложение, используя Codeigniter. Пока мне удалось запустить приложение на моем локальном хосте. Но когда я загружаю контент на веб-хостинг, я не могу заставить его работать.Codeigniter return 404 страница не найден
Это то, что я испытывал до сих пор:
- странно, я могу назвать контроллер Welcome.php, который является контроллером выборки из CodeIgniter, и показывая хорошо.
- Но я не могу назвать какой-либо другой контроллер, который мой контроллер по умолчанию Eventhough я поставил его в routes.php, config.php и т.д.
Ниже моя конфигурация для этих файлов:
routes.php
$route['default_controller'] = 'lokadok';
$route['404_override'] = '';
$route['upload/do_upload'] = 'upload/do_upload';
config.php
$config['base_url'] = ((isset($_SERVER['HTTP_HOST']) && strlen($_SERVER['HTTP_HOST'])>0) ?
'http://' . $_SERVER['HTTP_HOST'] : 'http://www.lokadok.co.id');
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
$config['url_suffix'] = '.html';
$config['charset'] = 'UTF-8';
и это .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^(/index\.php|/assets|/robots\.txt|/favicon\.ico)
RewriteRule ^(.*)\.html$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^(/index\.php|/assets|/robots\.txt|/favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
Мой контроллер по умолчанию это:
lokadok.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Lokadok extends CI_Controller {
public function index() {
$data['is_login'] = $this->session->userdata(LOGGED_IN);
$specialty = $this->input->post('specialty', '');
$address = $this->input->post('address', '');
$doc_name = $this->input->post('doc_name', '');
if ($specialty == '' && $address == '' && $doc_name == '') {
$this->load->model('model_share');
$data['custom_css'] = array(
'style/custom/lokadok.css'
);
$data['sort_by'] = 1;
$data['pop_specialties'] = $this->model_share->get_specialties(true);
$data['specialties'] = $this->model_share->get_specialties();
$this->load->view('templates/header', $data);
$this->load->view('lokadok_view');
$this->load->view('templates/footer', $data);
} else {
redirect("search?specialty=$specialty&address=$address&doc_name=$doc_name&sort_by=1");
}
}
}
?>
Я искал ответ на какое-то время и все еще не мог понять это. Поэтому, если кто-нибудь может заметить ошибку, я бы очень признателен.
Для проверки местоположения вы можете перейти по адресу: www.lokadok.co.id, который я ожидаю назвать своим контроллером по умолчанию.
и попробуйте позвонить http://www.lokadok.co.id/welcome, который странно работает хорошо.
Спасибо всем, и надеюсь, что мои объяснения понятны.
Попробуйте добавить 'Опции -Multiviews + FollowSymLinks' к ваш файл .htaccess – Capsule
Я видел, что вы дважды писали $ config ['base_url'], это ошибка типографии или вы на самом деле это сделали? – ankur140290
Капсула, я добавил строку поверх .htaccess, но все еще не работает. любое другое предложение? – yodann