URL не предоставляют никаких функций для отправки «скрытых» данных.Поэтому вы не можете скрыть значения в вашем URL.
Однако вы можете использовать контроллер среднего класса, который перенаправляет пользователя еще один раз:
1. Пользователь делает запрос на/subtitles/xy/1/2
На запрос отвечает следующая функция:
public function middleware(){
$this->load->library('session');
//Local variables just for easier understanding
$seg2 = $this->uri->segment('2');
$seg3 = $this->uri->segment('3');
$seg4 = $this->uri->segment('4');
//Store the data in a session
$this->session->set_userdata('seg3', $seg3);
$this->session->set_userdata('seg4', $seg4);
redirect('subtitles/'.$seg2);
}
2. Codeigniter устанавливает переменные сеанса и перенаправляет пользователя на другую функцию, которая получает значения
public function handleSubtitles(){
$this->load->library('session');
//Retrieve the values from the session library
$seg3 = $this->session->userdata('seg3');
$seg4 = $this->session->userdata('seg4');
//Unset the values
$this->session->unset_userdata('seg3');
$this->session->unset_userdata('seg4');}
}
Для того, чтобы это работало, вам также нужно настроить конфигурацию маршрутизации: application/config/routes.php
$route['subtitles/(:any)'] = "subtitles/handleSubtitles";
$route['subtitles/(:any)/(:any)/(:any)'] = "subtitles/middleware";
Однако я бы просто оставил значения в URL-адресе ... Это сделает вашработать легче в долгосрочной перспективе.