1

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

应用程序.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 仅在无效页面上运行?

4

1 回答 1

1

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

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

根据您的路线,您的第一条路线是说如果提供的路径等于“main/home”,则指向 view main/home。如果控制器home中有一个动作,main.cfc那么它将在渲染视图之前运行。

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

更新:

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

于 2016-01-12T21:20:38.353 回答