/ / Перезапишіть URL-адресу, якщо в кодигінері немає контролера - php, кодигнайтеру, переписуванні URL-адрес, маршрутизації

Переписати URL-адресу, якщо контролер не існує в codeigniter - php, codeigniter, rewriting, routeing

Перепишіть URL-адресу, якщо користувач намагався отримати доступ до будь-якого неіснуючого контролера.

Наприклад: - Якщо користувач намагався отримати доступ http://example.com/project/anyvalue . У моїй програмі немає контролера з назвою "anyvalue". У цій ситуації я хочу перенаправити

http://example.com/project/profile/anyvalue

Як це можливо, використовуючи маршрутизацію в кодігінітер?

Відповіді:

1 для відповіді № 1

Використовуйте маршрут за замовчуванням для перенаправлення запитів на певну сторінку, якщо контролер відсутній

Ви можете знайти місцезнаходження маршрутів у

/application/admin/config/routes.php

$route["default_controller"] = "welcome";

Також використовуйте наступне, якщо сторінка не знайдена

$route["404_override"] = "default_page";

1 для відповіді № 2
  1. Додайте маршрути до всіх існуючих контролерів у розділі "/ project / ..."
  2. Додайте маршрут, який буде відповідати будь-яким шляхом у розділі "/ проект"

Приклад:

/* Currently available controllers under "/project/" */
$route["project/profile"] = "project/profile";
$route["project/add"] = "project/add";
$route["project/edit"] = "project/edit";

/* Catch all others under "/project/" */
$route["project/(:any)"] = "project/profile/$1";

/* if controller class name is Profile and function name is index */
$route["project/(:any)"] = "project/profile/index/$1";

0 для відповіді № 3

Що вам потрібно, це URL-адреси суєти, ви можете знайти керівництво по виконанню цього коду в запалювачі коду тут:

http://philpalmieri.com/2010/04/personalized-user-vanity-urls-in-codeigniter/

По суті ви додаєте це до файлу маршрутів:

$handle = opendir(APPPATH."/modules");
while (false !== ($file = readdir($handle))) {
if(is_dir(APPPATH."/modules/".$file)){
$route[$file] = $file;
$route[$file."/(.*)"] = $file."/$1";
}
}

/*Your custom routes here*/

/*Wrap up, anything that isnt accounted for pushes to the alias check*/
$route["([a-z-_/]+)"] = "aliases/check/$1";