2015-11-01 5 views
1

Что мой текущий URI выглядит так: localhost/home/saved, localhost/home/viewCodeigniter - URI Маршруты не работает

То, что я хочу, чтобы это выглядело как: localhost/saved, localhost/view.

Что мой home контроллер выглядит следующим образом:

class Home extends CI_Controller 
{ 
    public function index() { 
     //stuff 
    } 
    public function saved() { 
     //stuff 
    } 
    public function view() { 
     //stuff 
    } 
} 

Я хочу, чтобы избавиться от home от URL, так что пользователь может просто посетить localhost/saved и другие функции в моем доме без ввода home в URL ,

Я попытался положить их в файл routes.php, но не повезло.

$route['home/(:any)'] = "$1"; 
//that didn't work so I tried putting this: 

$route['home/(:any)'] = "/$1"; 
//that didn't work either. 

Любая помощь очень ценится. Благодаря!

ответ

1

Попробуйте что-то вроде этого

$route['saved'] = 'home/saved'; 
$route['view'] = 'home/view'; 

Выход - www.example.com/saved и www.example.com/view

+0

Спасибо, это исправлено! –

+0

@TaylorSwift любит кодирование :) –

1

правило Group будет:

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

Установите это правило в конце маршруты, потому что (:any) placeholder является жадным и будет принимать что-либо из URL-адреса, если не указано с определенной точностью. Значение: если у вас есть контроллер Product.php с методом public function show($id){/*some code*/} и хотите приблизиться, маршрут должен быть указан перед правилом выше.

Маршруты будут работать в том порядке, в котором они определены. Более высокие маршруты всегда будут иметь приоритет над более низкими.

Docs.

Смежные вопросы