2014-12-29 2 views
0

Я хотел бы настроить различные маршруты для frontend и backoffice в файле routes.ini.fatfreeframework Маршрутизация для frontend и backoffice

Вот что я почти у:

[routes] 

GET|POST /admin/@controller/@action [email protected]>@action 
GET|POST /admin/* =Backoffice->main 
GET|POST /* =Website->main 

Что я хочу:

  • любой URL, начиная с/админ/... является BackOffice URL. Это вызовет метод «main» в контроллере «Backoffice» или, если дано, вызовите @controller -> @ action
  • любой другой URL-адрес должен управляться «основным» методом в контроллере «Веб-сайт». Этот контроллер ищет соответствующий URL-адрес в базе данных и отображает его содержимое. В противном случае отображается страница 404.

Моя проблема в том, что что-то происходит на веб-сайте-> main(), что неправильно. Кто-нибудь может мне помочь?

+0

еще раз подумайте о своей конфигурации маршрутизации. подстановочный знак, как правило, есть, чтобы съесть все на том пути, на котором вас не волнует. – ikkez

+0

Я знаю, что это проблема, ikkez. Потому что URL-адрес для интерфейса может быть что-то вроде/company/sales/our_most_expensive_product или просто/here_we_go. Я думаю, что я использую подстановочный знак. Единственное, что отличается интерфейсом и бэкэнд, это то, что все бэкэнд-ссылки начинаются с/admin/и используют отображение контроллера/действия. – eddieconnecti

+0

Хорошо, я думаю, вы можете определить свои интерфейсные маршруты: ваш пример '/ company/sales/our_most_expensive_product' может быть'/@ category/@ подкатегорией/@ product' или '/ @ module/*'. Я уверен, что вы найдете способ, который подходит для всех;) – ikkez

ответ

0

Почему вы не задали функцию -> beforeroute() в контроллере, а затем используйте регулярное выражение, чтобы найти, имеет ли url/admin /.

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