【问题标题】:'redirect' and 'proxy' vs 'forward' and 'passthrough' in Tuckey URLRewriteTuckey URLRewrite 中的“重定向”和“代理”与“转发”和“直通”
【发布时间】:2017-09-08 07:47:58
【问题描述】:

请注意,在我尝试显示代码示例时,我将编辑/编辑任何对我工作的公司的引用,以掩盖他们的身份,而不是隐藏我的事实我什至问。还应该注意的是,我对这个 UrlRewrite/Tukey/dotCMS 游戏非常陌生。

我在重定向工作时遇到了麻烦。它通过 dotCMS 使用 Tuckey URLRewrite。出于 SEO 的目的,尝试是重定向,但作为转发与代理。

我发现以下工作(“重定向”和“代理”在这里可以互换):

<to type="proxy">http://[redacted]:8080$1$3?%{query-string}</to>

但是,以下会导致 404(“转发”和“直通”在这里可以互换):

<to type="forward">http://[redacted]:8080$1$3?%{query-string}</to>

整个规则如下:

      <!-- EN with Query Params -->
  <rule>
    <from>^/([^/]+)/en/([^/]+)?$</from>
    <to type="proxy" qsappend="true">[redacted]:8080$1$3&amp;%{query-string}</to>
  </rule>
  <!-- EN without Query Params -->
  <rule>
    <from>^(.*)(\/en)(\/.*)?$</from>
    <to type="proxy">[redacted]:8080$1$3?%{query-string}</to>
  </rule>

我最初的一些问题(可能会出现更多问题):

  1. 'proxy'/'redirect' 和 'forward'/'passthrough' 之间是否存在这样的区别,以至于需要实施更专业的努力来实现有意义的重定向?
  2. 我是否在其他配置文件中遗漏了一些可能会影响这些重定向尝试结果的内容?

编辑:RegEx 的不同之处在于我正在尝试看看这是否可能是发生断开连接的地方

【问题讨论】:

    标签: proxy url-rewriting forward tuckey-urlrewrite-filter dotcms


    【解决方案1】:

    因为 dotCMS 中的 url 并不真正存在,所以转发规则使用的 servlet requestdispatcher 不起作用。您需要设置 dotCMS 将尊重的请求属性 CMS_FILTER_URLMAP_OVERRIDE。在代码中,这看起来像:

        NormalRule forwardRule = new NormalRule();
        forwardRule.setFrom( "^/example/forwardDotCMS/(.*)$" );
        SetAttribute attribute = new SetAttribute();
        attribute.setName("CMS_FILTER_URLMAP_OVERRIDE");
        attribute.setValue("/about-us/index");
        forwardRule.addSetAttribute(attribute);
        addRewriteRule( forwardRule );
    

    【讨论】:

    • 您的代码示例出现在我所做的不同搜索中,但我不完全确定要在哪里进行更改。我正在尝试挖掘并找到基本 Java 文件的位置以进行更改。
    • 您可以在这里找到代码示例,在我们的示例 osgi 插件中:github.com/dotCMS/plugin-seeds/tree/master/OSGi/…
    猜你喜欢
    • 2023-01-31
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多