【问题标题】:Google App Engine Java, 301 redirect with URL Rewrite FilterGoogle App Engine Java,带有 URL 重写过滤器的 301 重定向
【发布时间】:2011-04-14 05:36:29
【问题描述】:

我的应用引擎项目 myproject.appspot.com 托管在 myprojectsdomain.com 上。我想将 myprojectsdomain.com 上的所有链接永久重定向到 brandNewDomain.com。我在 http://code.google.com/p/urlrewritefilter/ 找到了 Java URL Rewrite 过滤器,但我没有看到有关如何将其用于 301 重定向以更改域的文档。所有的例子似乎都是为了在同一个域中重写 url,在我目前的情况下这对我没有多大好处。我是在找错地方还是有更好的方法来永久重定向我的 Google App Engine Java 项目?谢谢!

【问题讨论】:

    标签: java url-rewriting http-status-code-301


    【解决方案1】:

    我会为此使用 OCPsoft Rewrite:

    Rewrite

    这里是如何使用重写来做到这一点,这是非常可配置的。

    ConfigurationBuilder.begin()
       .defineRule()
       .when(Domain.matches("myprojectsdomain.com").and(Path.matches("/{1}")
              .where("1").matches(".*")))
       .perform(Redirect.permanent("http://brandNewDomain.com/{1}"));
    

    我希望这会有所帮助,或者至少提供有关如何使用任何 Rewrite 工具执行此操作的想法。

    ~林肯

    【讨论】:

      【解决方案2】:

      是的,您正在查看错误的模块。 urlrewritefilter 只是在您的 servlet 看到它之前更改 URL(但它仍会转到该 servlet)。它不做重定向。

      您可以自己实现这一点,将所有 URL 映射到一个 servlet,该 servlet 只返回重定向响应 (response.sendRedirect)。

      【讨论】:

      • 我可能以一种令人困惑的方式陈述了这个问题。我的网站现在位于 la.truxmap.com,我想永久重定向到 la.foodtrucksmap.com。也就是说,我希望相同的 servlet 保持不变,我只想将新域用于 SEO 目的。
      • 同一个 App Engine 上的两个域?在这种情况下,添加一个过滤器来查看进入的域并重定向,如果它不是您想要的,如果是您想要的,让请求继续。但是您可能应该设置两个不同的 App Engine,每个域一个。旧的只会重定向到新的。
      • 我花了一些时间阅读有关过滤器的信息,并且我知道我需要做什么,但是我在试图弄清楚过滤器的确切位置时遇到了麻烦。我正在使用 GWT 和 GAE Java,所以我认为它应该在页面加载时调用的 servlet 之前进行,但这只是扩展 RemoteServiceServlet 的 RPC servlet。
      猜你喜欢
      • 2012-09-22
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多