【问题标题】:Adding a parameter before the page name in SilverStripe 3.x在 SilverStripe 3.x 中的页面名称前添加参数
【发布时间】:2016-12-14 12:00:31
【问题描述】:

我已经在网上搜索了几个小时,但找不到任何可以回答我的问题的内容。

如果我的站点树中有以下页面:

  • 首页
    • 第 1 页
    • 第 2 页

然后我会通过以下方式访问这些页面:

  • www.mysite.com
  • www.mysite.com/page1
  • www.mysite.com/page2

如何设置路由,以便可以访问以下页面?

  • www.mysite.com/client1
  • www.mysite.com/client1/page1
  • www.mysite.com/client1/page2
  • www.mysite.com/client2
  • www.mysite.com/client2/page1
  • www.mysite.com/client2/page2

其中 client1、client2 等是一个变量值,将用于标识客户以进行品牌推广等。

【问题讨论】:

  • 将客户端作为路由的$URLSegment 部分可能是可能的,但它会禁用在其旁边放置任何“常规”页面的可能性......例如。 www.mysite.com/contact 然后将无法正常工作。切换 URL 结构也可以吗?例如。 www.mysite.com/page1/client1?
  • 网站上的所有内容都是特定于客户的,因此永远不会出现 URL 中没有客户的情况。我看过 Silverstripe 中的路由,但似乎无法弄清楚。

标签: routes silverstripe


【解决方案1】:

您可以使用其中一个模块

或创建类似“ClientLanding”页面类型的东西,您可以在其中选择主题,进行客户特定设置,例如。

【讨论】:

    【解决方案2】:

    万一其他人为此苦苦挣扎,经过多次谷歌搜索,我终于想通了。

    我需要将此添加到我的 config.yml

    ---
    Name: modelascontrollerroutes
    After: cms/routes#modelascontrollerroutes
    ---
    Director:
      rules:
        '': 'RootURLController'
        '$Client': 'RootURLController'
        '$Client/$URLSegment//$Action/$ID/$OtherID': 'ModelAsController'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多