переписывание URL в codeigniter - PullRequest
2 голосов
/ 27 июня 2011

Как мне переписать следующий URL кодигнита

localhost/test_project/pages/show_page/11

до

localhost/test_project/pages/11

и возможно ли дальнейшее снижение, как:

localhost/test_project/11

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Вам следует отредактировать этот файл: application/config/routes.php.

Предположим, у вас есть контроллер pages и метод show_page с получением идентификатора в качестве параметра (как вы сказали).

ваш URL похож на localhost/test_project/pages/show_page/11

Я предполагаю, что параметр всегда является числом, поэтому, используя подстановочные знаки, как описано здесь , вы можете добавить следующее в ваш файл routes.php:

$route['pages/(:num)'] = "pages/show_page/$1";

Таким образом, ваши URL будут выглядеть как localhost/test_project/pages/3.Это все равно, что сказать, что если кто-то пытался посетить localhost/test_project/pages/3, он на самом деле означает localhost/test_project/pages/show_page/3.

Для таких URL, как localhost/test_project/3, вы можете добавить это:

$route['(:num)'] = "pages/show_page/$1";
1 голос
/ 27 июня 2011

У вас есть несколько вариантов .Это в порядке убывания приоритета.

  1. Сначала идет routes.php, который является наиболее предпочтительным способом обработки вещей (информация уже предоставлена, но здесь снова).
  2. Вы также можете добавить метод _resolve к контроллеру (что означает, что CI должен получить доступ к вашему контроллеру для начала), и
  3. , наконец, вы можете переопределить библиотеку CI_Router, класс, которыйфактически возвращает маршрут, по которому нужно идти.

Серьезно, не переопределяйте CI_Router, если вы не знаете, что делаете.

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