Удалить имя контроллера из URL.Codeigniter - PullRequest
0 голосов
/ 18 октября 2018

Может кто-нибудь помочь мне с этим.Я хочу удалить имя контроллера из URL, например,

www.site-name.com / controller_name / controller_functions / controller_arguments

для этого

www.site-name.com / controller_arguments

, например:

www.site-name.com / blog / display / blog-title

по этому адресу:

www.site-name.com/blog-title

Ниже приведен класс моего контроллера

 class Blog extends CI_Controller {

       public function index() {

         $data['blogs_data'] = $this->Blog_model->get_blogs();

         $data['main_view'] = "blog/blog_layout";

         $this->load->view('layouts/main', $data);
      }

       public function blog_display($page_url) {
        $data['blog_data'] = $this->Blog_model->get_blog($page_url);

        $data['main_view'] = "blog/blog_detail_layout";

        $this->load->view('layouts/main', $data);
       }
 }

. Как вы можете видеть из моего контроллера, URL моего сайта для отображения блога будет выглядеть следующим образом www.website-name.com / blog / blog_display / ($ page_url) <== независимо от того, каким будет $ page_url.Теперь я хочу быть похожим на это www.website-name.com/($page_url) <= так прямо к $ page_url. </p>

Спасибо

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

определить маршрут в файле rout.php.

route['controller_arguments']='controller_name/controller_functions';

, на котором вы показываете этот url.define здесь.

<a href="<?php echo base_url(); ?>controller_arguments">
                            </a>
0 голосов
/ 18 октября 2018

Я полагаю, что ваши слагы генерируются, поэтому вы не можете просто записать все свои слагы в свои маршруты.

В вашем конкретном случае вам нужно что-то подобное в ваших маршрутах:

$route['(:any)] = 'blog/display/$1';

Не забывайте, что ваши маршруты используются сверху вниз.Так что если у вас есть этот маршрут в качестве первого, остальная часть вашего сайта может не работать.

Так что в случае целой структуры блога вам может понадобиться что-то вроде:

$route[''] = 'blog/index'; // For first page without pagination
$route['(:num)] = 'blog/index/$1'; // Blog article pagination (for second page and all other pages)
$route['(:any)] = 'blog/display/$1'; // Blog article detail

Чтобы избежатьВ будущем возникнут некоторые проблемы с маршрутом, который является просто (: any) параметром. Возможно, вы захотите добавить дополнительный сегмент в статью с подробным описанием блога.

Например:

$route['detail/(:any)] = 'blog/display/$1'; // Blog article detail

Для получения более подробной информации по этой теме, взгляните на документы здесь: Система маршрутизации Codeigniter

0 голосов
/ 18 октября 2018

Перейдите на application->config->routes.php

Затем вы можете установить маршрут к «blog / display / blog-title» как «blog-title»

Добавьте строку ниже к вашим маршрутам.php файл

$route['blog-title'] = 'blog/display/blog-title';

Затем вы можете заменить "blog / display / blog-title" на "blog-title".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...