在 FW/1 中使用通配符路由匹配

Using wildcard route matching in FW/1

我正在尝试在 FW/1 v 3.5 中的路由上使用通配符匹配。

Application.cfc

component  extends="framework.one"  {

  this.name= "Wildcard7";

  variables.framework = {
    home = 'main.home',
    action = 'fuseaction',
    baseURL = 'useCgiScriptName',
    trace = isDebugMode()
    };

  variables.framework.routes = [
    { "main/home"               = "main/home"},
    { "*"                       = "main/404"}
  ];

}

当我 运行 页面时,没有指定操作,我得到 main/404 页面而不是 main/home

** FW/1 痕迹**

如何只在无效页面上将 main/404 变为 运行?

When I run the page, without specifying an action, I get the main/404 page instead of main/home

我假设您正在尝试像这样访问页面 - your.domain/index.cfm/main请注意缺少 home 操作。

根据您的路线,您的第一条路线是说如果提供的路径等于 "main/home",则指向视图 main/home。如果 main.cfc 控制器中有 home 的操作,那么在呈现视图之前将是 运行。

停止操作 home 将不会匹配您当前的任何路线;导致您的通配符捕获它。您需要通过包含另一条路线来处理它,例如 {"main" = "main"}.

更新:

要从 your.domain/index.cfm 访问 main/home,您可以尝试传递 {"/" = "main/home"} 的路由。我建议将其置于您的通配符之上并置于任何其他路线之下,以避免任何异常匹配。