CodeIgniter 404 по методу

У меня небольшая проблема

Это мой контроллер CapturistaCtrl.php:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class CapturistaCtrl extends CI_Controller {

    public function index(){
        echo "index";
    }

    public function alta(){
        echo "alta";
    }
}

это мой routes.php

 <?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['default_controller'] = 'Welcome';
$route['capturista'] = 'CapturistaCtrl';

на config.php:

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

и .htaccess

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

Если я помещаю этот URL: http: // localhost / captura / capturista, я получаю текст «index», это означает, что метод index () на моем контроллере работает, но если я помещаю http: // локальный / captura / capturista / alta, я получаю страницу 404.

Просто прочтите документацию CodeIgniter и следуйте инструкциям по ее использованию.

Sparky 20.05.2018 18:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
1
91
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Использование группы захвата регулярных выражений (...).

Пытаться:

$route['capturista(.*)'] = 'CapturistaCtrl$1';

Альтернатива, используя: любой подстановочный знак.

$route['capturista/(:any)'] = 'CapturistaCtrl/$1';
$route['capturista'] = 'CapturistaCtrl/index';
локальный / каптура / каптуриста / альта теперь работает, но localhost / captura / capturista больше не работает Обновлено: Использование $ route ['capturista / (: any)'] = 'CapturistaCtrl / $ 1'; ниже $ route ['capturista'] = 'CapturistaCtrl'; вроде работает, спасибо, но это лучшее решение? Мне нужно использовать 2 линии на контроллер?
Eterium 20.05.2018 07:25

Обновил свой ответ. Используя всего одну строчку.

Karlo Kokkak 20.05.2018 07:41
****controller code****
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * 
 */
class CapturistaCtrl extends CI_controller
{

    public function index(){
        echo "index";
    }

    public function alta(){
        echo "alta";
    }
}

**routes.php**

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['capturista'] = 'CapturistaCtrl';
$route['capturista/(:any)'] = 'CapturistaCtrl/$1'; 
// (or any one )$route['capturista/alta'] = 'CapturistaCtrl/alta';


**.htaccess**

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>


**config.php**

$config['index_page'] = 'index.php';
remove (index.php)
$config['index_page'] = '';

$config['uri_protocol'] = 'index.php';
remove (index.php)
$config['index_page'] = '';

Другие вопросы по теме