Я изучаю 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
это моя настройка даже на реальном сервере
все это происходило из