ошибка 404 с контроллерами codeigniter на сервере wamp 64 - PullRequest
0 голосов
/ 24 апреля 2019

Я использую codeigniter на wampserver, я очень новичок в представлениях контроллера модели и пытаюсь хорошо понять, как он работает. В настоящее время я пытаюсь сделать базовое создание контроллера: В /application/controllers/pages.php я просто сделал это:


<?php

    class Pages extends CI_Controller{
    public function one(){
        echo 'hello world';
    }
    }

?>


Итак, да, это очень просто, но я застреваю с ошибкой 404, когда пытаюсь найти метод с помощью хрома: http://localhost/test/pages/one/

Я посмотрел в интернете несколько учебных пособий, которые делали то же самое, что и я, но они получили «привет мир» на своей веб-странице.

Я обнаружил, что это может быть потому, что я не набирал index.php в моем URL, но я изменил свой config.php и мой route.php, чтобы больше не вводить его:

config.php:


$config['base_url'] = 'http://localhost/test';

/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';


routes.php:


$route['default_controller'] = 'pages/view';
$route['pages'] = 'pages/$1';
$route['(:any)'] = 'pages/view/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Что меня больше всего беспокоит, так это то, что когда я использую пример этого codeigniter, он работает хорошо, и я не получаю ошибку 404:


class Pages extends CI_Controller{
public function view($page = 'home')
{
        if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
        {
                // Whoops, we don't have a page for that!
                show_404();
        }

        $data['title'] = ucfirst($page); // Capitalize the first letter

        $this->load->view('templates/header', $data);
        $this->load->view('pages/'.$page, $data);
        $this->load->view('templates/footer', $data);
}
}

Если я попытаюсь создать другую функцию, она будет полностью проигнорирована. Я предполагаю, что у меня проблема с моими файлами маршрутизации или проблема с установкой codeigniter, но в случае, я предпочитаю спросить перед переустановкой всех ...

У кого-то есть ответ на мою проблему? Большое спасибо.

1 Ответ

1 голос
/ 25 апреля 2019

смените маршруты с

$route['default_controller'] = 'pages/view';
$route['pages'] = 'pages/$1';
$route['(:any)'] = 'pages/view/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

до

$route['default_controller'] = 'pages/one';
$route['pages'] = 'pages/$1';
$route['(:any)'] = 'pages/one/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
...