Это следующий вопрос для моего первого вопроса: скрытие или удаление имени контроллера в 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.
Спасибо!
Вы можете добавить метод _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();
}
Это должно быть сделано из project_name/application/config/routes.php этого файла. Добавьте строку
$route['url_first/url_second'] = "any_controller_name/function_name";
это будет работать так же, как ваш первый вопрос
// 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';