Я использую один контроллер. Как удалить или скрыть имя контроллера на моем URL-адресе с помощью маршрутов? Я уже установил мой .htaccess для удаления моего index.php. Я пробовал много кода из других подобных вопросов, но мне не повезло. Я не знаю. Если у меня проблема на моем живом сервере, потому что в моем предыдущем проекте я использовал этот код
$route['del/(:any)'] = "my_cotroller"; $route['(:any)'] = 'pages/view/$1';
и это работает отлично, но когда я попытался использовать его в моем текущем проекте, это не сработало. Это мой маршрут по умолчанию
$route['default_controller'] = "my_cotroller"; $route['404_override'] = '';
Я хочу архивировать URL-адрес, например http://www.sample.com/login, но мой текущий код маршрута дает мне этот http://www.sample.com/my_controller/login .
Спасибо за помощь.
Простой подход, когда я использую CI:
Пример контроллера:
<?php class Haha extends CI_Controller { public function check() { $this->load->view('path/to/check/view'); } public function choke() { $this->load->view('path/to/choke/view'); } }
Примеры маршрутов:
//same name with C method $route['check'] = 'haha/check'; $route['choke/(:any)'] = 'haha/choke'; //or custom route name $route['squirrel'] = 'haha/check'; $route['woohoo/(:any)'] = 'haha/choke';
Мой htaccess:
RewriteEngine on RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png) RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule ^(.*)$ ./index.php/$1 [L]
Доступ к uri:
http://yoursite.com/check http://yoursite.com/choke/whatever //or http://yoursite.com/squirrel http://yoursite.com/woohoo/whatever
Дополнение: Вот полные маршруты из моего старого проекта с использованием CI, возможно, вы можете что-то получить.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); $route['default_controller'] = 'sitehome'; $route['page'] = 'sitehome/page'; $route['page/who-we-are'] = 'site/whoweare'; $route['page/why-use-us'] = 'site/whyus'; $route['page/about-us'] = 'site/about'; $route['page/contact-us'] = 'site/contact'; $route['page/news'] = 'site/news/news'; $route['page/topics'] = 'site/topic'; $route['page/polls'] = 'site/polls'; $route['page/results'] = 'site/result'; $route['agent/detail/(:any)'] = 'site/agentdetail'; $route['register'] = 'site/register'; $route['login'] = 'site/login'; $route['user/home'] = 'usermain'; $route['user/edit-account'] = 'user/editaccount'; $route['user/retire'] = 'user/retired'; $route['user/business/data'] = 'user/business'; $route['user/business/topic/create'] = 'user/topic/topiccreate'; $route['user/business/topic/view'] = 'user/topic/topicview'; $route['user/business/topic/edit/(:num)'] = 'user/topic/topicedit'; $route['user/inbox'] = 'user/inbox'; $route['user/message/read/(:any)'] = 'user/readmessage'; $route['user/provider/list'] = 'user/providerlist'; $route['user/provider/send-message/(:any)'] = 'user/providerlist/sendmessage'; $route['user/notification'] = 'user/notified'; $route['user/inquiry'] = 'user/inquiry'; //testing purpose $route['percobaan'] = 'coba/percobaan'; $route['poll'] = 'site/polls/retrievePoll'; //serve response $route['response/single-poll'] = 'api/ResponseData/serveHomePoll'; $route['response/multi-poll'] = 'api/ResponseData/servePoll'; $route['404_override'] = 'notFound'; $route['translate_uri_dashes'] = FALSE; /* End of file routes.php */ /* Location: ./application/config/routes.php */
Заметки :
http://example.com/business/
не удастся или не будет.
Удачи.
Вы можете определить собственный маршрут в config / routes.php – например:
$route['about'] = 'name_controller/about';
Затем http://example.com/about отправляется на сайт http://example.com/name_controller/about
Подробнее http://ellislab.com/codeigniter/user-guide/general/routing.html