【问题标题】:Hybris ?site=electronics always redirect to electronics siteHybris ?site=electronics 总是重定向到电子网站
【发布时间】:2020-09-07 06:19:10
【问题描述】:

每当我点击 URL https://localhost:9002/trainingstorefront/?site=electronics 时,它总是会重定向到站点主页。这个请求映射是如何实际发生的以及它在哪里决定要加载哪个站点。

【问题讨论】:

    标签: redirect hybris request-mapping storefront


    【解决方案1】:

    站点映射是通过您可以在 CMSSite 下找到的正则表达式 (urlPatterns) 完成的。

    $siteUid=electronics
    # CMS Site                                                                                                 
    INSERT_UPDATE CMSSite ; uid[unique=true] ; urlPatterns                                                                                                                  ;      
                          ; $siteUid         ; (?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=$siteUid)(|\&.*)$,(?i)^https?://$siteUid\.[^/]+(|/.*|\?.*)$;
    

    正如您在此处看到的,(?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=$siteUid)(|\&.*)$ 正则表达式与电子 CMSSite 相关联。这意味着如果您点击 https://localhost:9002/trainingstorefront/?site=electronics URL,它会登陆电子网站。

    您可以根据需要更改此 urlPatterns 正则表达式。
    例如我希望用户在点击 https://localhost:9002/trainingstorefront/(没有 ?site=electronics)时登陆电子网站,为了实现这一点,我将在 urlPatterns 添加(?i)^https?://[^/].*$

    $siteUid=electronics
    # CMS Site 
    INSERT_UPDATE CMSSite ; uid[unique=true] ; urlPatterns                                                                                                                  ;      
                          ; $siteUid         ; (?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=$siteUid)(|\&.*)$,(?i)^https?://$siteUid\.[^/]+(|/.*|\?.*)$,(?i)^https?://[^/].*$ ;
    

    【讨论】:

    • 请记住,一旦建立会话,就无法更改 CMS 站点或使用“clear”参数。
    • 是的,因为在第一次请求期间,它会将匹配的 CMSsite 添加到会话中,以便后续请求为同一个 CMSsite 服务。
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 2020-04-29
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多