маршрутизация по умолчанию в codeigniter

Я изучаю codeigniter. При запуске приложения для запуска контроллера по умолчанию изменяется контроллер.

Контроллер правильно загружает представление, и это нормально, поэтому я предполагаю, что работа маршрутизации работает, как и ожидалось, но когда я использую (вручную набирать адресную строку другого метода на одном контроллере), тот же шаблон url / controller / method у меня получается ошибка 404, либо вид существует.

Нужно ли менять какое-либо поведение маршрутизации по умолчанию или что-то еще проблема?

благодаря

Я не знаю, если вы уже удалили index.php из вашего шаблона url, считая, что в этом случае вы должны ввести внутри поля адреса браузера index.php/controller/method . (если вы вручную набираете url, как вы описываете)

Если вы, с другой стороны, не хотите использовать index.php для каждой ссылки, которую вы можете рассмотреть, чтобы удалить ее, подробнее здесь .

Ну, это может быть из-за файла index.php, как указано выше, или если вы хотите избавиться от index.php. Пожалуйста, включите файл .htaccess в ваше приложение.

  config/config.php - modifiy $config['base_url'] = 'index.php' $config['base_url'] = '' // set it to blank 

Для файла .htaccess см. Приведенный ниже код.

  RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] 

следить за этим

корневая_папка / .htaccess

удалить index.php в url

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] 

установить базовый URL-адрес

корневая_папка / приложение / Config / config.php

 | to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise. | The auto-detection mechanism exists only for convenience during | development and MUST NOT be used in production! | | If you need to allow multiple domains, remember that this file is still | a PHP script and you can easily do that on your own. | */ $config['base_url'] = 'http://[::1]/my-project/'; 

удаление index.php в url, даже по запросу сообщение в форме

корневая_папка / приложение / Config / config.php

 /* |-------------------------------------------------------------------------- | 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'] = ''; 

s et контроллер по умолчанию, мой – «домашний»,

корневая_папка / приложение / Config / routes.php

 | controller and method URI segments. | | Examples: my-controller/index -> my_controller/index | my-controller/my-method -> my_controller/my_method */ $route['default_controller'] = 'home'; 

после этого убедитесь, что имя файла контроллера полностью заглавное. имя класса.

это также важно, главным образом, когда вам нужно загружать на живой сервер.

корневая_папка / приложение / контроллеры / home.php

 <?php /** * * * @author Lloric Garcia <emorickfighter@gmail.com> */ defined('BASEPATH') OR exit('No direct script access allowed'); class Home extends MY_Controller { public function index() { } } 

то это будет ваш url

http://[::1]/my-project/home


это моя настройка даже на реальном сервере

все это происходило из

https://www.codeigniter.com/userguide3/index.html