【发布时间】:2014-12-29 13:13:38
【问题描述】:
我想在 routes.ini 文件中为前端和后台配置不同的路由。
这是我几乎拥有的:
[routes]
GET|POST /admin/@controller/@action =@controller->@action
GET|POST /admin/* =Backoffice->main
GET|POST /* =Website->main
我想要的是:
- 任何以 /admin/... 开头的 url 都是后台 url。这将调用“Backoffice”控制器中的方法“main”,或者,如果给定,调用@controller->@action
- 任何其他 url 都应由“网站”控制器中的“主”方法管理。该控制器在数据库中查找匹配的 url 并显示其内容。否则显示 404 页面。
我的问题是,现在任何东西都会转到 Website->main(),这是错误的。谁能帮帮我?
【问题讨论】:
-
也许再考虑一下你的路由配置。通配符通常会吃掉您不关心的路线中的所有内容。
-
我知道这是问题所在,ikkez。因为前端的 url 可以是 /company/sales/our_most_expensive_product 或只是 /here_we_go 我想我必须使用通配符。前端和后端的唯一区别是所有后端 url 都以 /admin/ 开头并使用控制器/动作映射。
-
好吧,我认为您可以定义您的前端路线:您的示例`/company/sales/our_most_expensive_product` 可以是
/@category/@subcategory/@product或/@module/*。我相信你会找到适合所有人的方法;) -
您还可以考虑将额外的 index.php 和 htaccess 文件放在真正的 /admin/ 目录中。所以你可以有一个额外的引导文件只用于管理后端。
标签: routing url-routing fat-free-framework