Как удалить имя контроллера из URL-адреса в codeigniter?

У меня есть контроллер с именем «профиль», а URL-адрес профиля пользователя – www.example.com/profile/user

Я уже использую перенаправление codeigniter в файле маршрутов

$route['profile/(:any)'] = "profile/index"; 

то, что я ищу, – удалить имя контроллера профиля из URL-адреса, чтобы он был оптимизирован и удобен для пользователя.

например

www.example.com/user

какие-либо предложения?

Вы можете попробовать любой из этих

 // url could be yourdomain/imran $route['(:any)'] = 'profile/index/$1'; // url could be yourdomain/10 $route['(:num)'] = 'profile/index/$1'; // url could be yourdomain/imran10 $route['([a-zA-Z0-9]+)'] = "profile/index/$1"; 

Ваш класс может выглядеть так

 class Profile extends CI_Controller { public function index($id) { // $id is your param } } 

Обновление: (Будьте осторожны)

Помните, что если у вас есть класс Someclass и вы используете url например yourdomain/Someclass тогда он будет перенаправлен в profile/index/$1 если у вас есть $route['(:any)'] или $route['([a-zA-Z0-9]+)'] .

Вы можете использовать это в файле маршрута:

 $route['(:any)'] = "controller_name/$1"; $route['(:any)/(:any)'] = "controller_name/$1/$1"; $route['(:any)/(:any)/(:any)'] = "controller_name/$1/$1/$1"; 

Попробуй это:

 $route['user'] = 'profile/user'; 

Не знаете какой-либо общий способ сделать это

Возможный дубликат Как скрыть имя контроллера в URL-адресе в CodeIgniter?

Если я правильно понял ваш вопрос, вы просто хотите добавить catchall к самому концу вашего файла маршрутов. Подобно:

 $route['(:any)'] = 'profile/index'; 

Это поймает все, что не поймано другим маршрутом, поэтому убедитесь, что этот скрипт содержит логику, чтобы определить, когда должен быть представлен 404.