2013-10-02 2 views
0

У меня есть страницы, созданные из базы данных на основе URI. Фанктоны, как и следовало бы, однако я не могу настроить мой routes, чтобы устранить контроллер и функцию из URL.Проблема маршрутизации - Codeigniter

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

Прямо сейчас у меня есть маршрут для отображения имени контроллера и переменной URI (независимо от того, что может быть). Тем не менее, я хочу также исключить имя контроллера и просто отобразить переменную URI, которая называется URL. Трудно объяснить, - надеюсь, кто-то подхватывает мой дрейф ...

Текущий URL будет: domain.com/studios/studio1

Но я хочу просто дисплей: domain.com/studio1

Я попытался $route['/(:any)'] = 'studios/location/$1';, но это портя весь сайт ,

Помощь?

ответ

1
$route['studios(/:any)*'] = 'studios/location'; 

Этот маршрут заставит все от studios на studios/location. Вы можете получить доступ к любому из параметров с использованием URI сегментов:

$id = $this->uri->segment(2); 

Если ваш URL был somewhere.com/studios/location/2, $id разрешило бы к 2

Однако, так как вы хотите, чтобы просто быть с корнем, вы будете должно поставить переопределение маршрута в нижней части файла маршрутов, так что оцениваются в прошлом:

// all other routes here. Which must be specifically 
// defined if you want a catch all like the one you mentioned 
$route['(:any)'] = 'studios/location'; 

в качестве альтернативы, если вы хотите высокий сайт обслуживания, вы можете указать набор маршрутов, как так:

$route['(studio1|studio2|studio3)'] = 'studios/location/$1'; 
+0

Отлично! Благодарю. Хорошее объяснение. –

0

как это «испортить ваш сайт»?

В любом случае, вы не должны иметь/раньше (: любой)

Просто:

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

EDIT:

ДО $ маршрута [ '(: любое)'] , вам нужно указать маршруты для всех ваших контроллеров; это вполне нормально, не знаю, если я бы назвал это «высокое содержание», но вы должны решить

+0

возможно, что маршрут направляет каждый запрос в студию/местонахождение –

+0

, это то, что OP говорит, что он хочет; ах, я понимаю, что вы имеете в виду. Это объясняет, «беспорядок мой весь сайт». Я отредактирую выше – jmadsen

+0

Да, единственная причина, по которой это будет считаться высоким, - это то, что по умолчанию CI будет получать доступ к контроллеру/методу/параметрам, и когда есть уловка, это все-таки сильно увлекает. Вам нужно будет указать маршрут для всех страниц выше всех вылов, и если вы по какой-то причине имеете постоянно меняющийся сайт или передаете его кому-то другому, он должен знать об этом. –

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