Как я могу удалить имя метода из URL в codeigniter? - PullRequest
0 голосов
/ 23 марта 2020

Я использую многоязычную функцию на своем сайте Codeigniter. текущий URL выглядит как

http://example.com/hi/news/view/news-title

Я хочу, чтобы это было похоже на

http://example.com/hi/news/news-title

текущих маршрутов. php выглядит как

$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;


//Routes for multilingual url
$route['^hi/(.+)$'] = "$1";
$route['^en/(.+)$'] = "$1";

// '/en' -> use default controller
$route['^hi$'] = $route['default_controller'];
$route['^en$'] = $route['default_controller'];

.htaccess файл выглядит как

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]

Я пробовал это, но это не работает и всегда выдает ошибку 404

$route['^(en|hi)/news/(:any)'] = "news/view/$1"; 

$route['hi/news/(:any)'] = 'news/view/$1';

1 Ответ

0 голосов
/ 23 марта 2020

Вы не указали имя контроллера или контроллер под названием «Новости» не существует.

Укажите имя контроллера, для которого используется метод «новости», например

$route['(en|hi)/news/(:any)'] = "home/news/view/$1"; 

ИЛИ

Создайте контроллер «Новости» и создайте метод «просмотра», например

class News extends CI_Controller {
    public function view()
    {

    }
}
...