Как я могу устранить имя контроллера в URL через маршруты в = codeigniter

0

Это следующий вопрос для моего первого вопроса: скрытие или удаление имени контроллера в URL-адресе с использованием маршрутов для seo-цели = codeigniter

Мне нужно скрыть или удалить имя контроллера из URL-адреса. Поэтому я последовал за ответом, предоставленным мне Nucleo 1985, это работает отлично для статических страниц. Я знаю, что мой вопрос несколько иной, поэтому я получил другое решение.

Я использую один контроллер.

У меня есть функция в контроллере, на которой есть коммутатор. Каждый случай содержит URL. пример (http://www.sample.com/my_controller/my_function/my_case_url). Параметр /my_case_url является динамическим.

Я создал отдельные маршруты для каждой функции, и он довольно суетился и не применим к моей функции, которая имеет URL-адрес переключателя.

Мой вопрос.

Как я могу получить URL-адрес, например http://www.sample.com/my_function/ и http://www.sample.com/my_function/my_case_url/? (Имя функции должно быть удалено или спрятано при щелчке ссылки и перенаправлении на страницу)

Мне это нужно для SEO.

Спасибо!

Теги:
codeigniter
routes
.htaccess

3 ответа

0

Вы можете добавить метод _remap() в ваш контроллер

https://ellislab.com/codeigniter/user-guide/general/controllers.html#remapping

Поместите следующий код внутри контроллера

/**
 * Intercept all calls to this class. 
 * 
 * @access private
 * @param string
 * @param array
 * @return boolean
 */
function _remap($method, $params)
{
    // If method exists, call that method.
    if (method_exists($this, $method) !== false) return call_user_func_array(array($this, $method), $params);

    // If method is actually an existing permalink, show permalink content
    if ($this->SomeModel->exists(array('permalink' => $method))) return $this->view($method);

    // Non-existing method
    show_404();
}
0

Это должно быть сделано из project_name/application/config/routes.php этого файла. Добавьте строку

$route['url_first/url_second'] = "any_controller_name/function_name";
0

это будет работать так же, как ваш первый вопрос

// it will go to my_controller index    
$route['my_function'] = 'my_controller'; 

// you can set specific controller method remove method will go to index.
$route['chomy_functione/(:any)'] = 'my_controller/my_function'; 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню