google app engine java - 基于域的重定向

Posted

技术标签:

【中文标题】google app engine java - 基于域的重定向【英文标题】:google app engine java - redirecting based on domain 【发布时间】:2015-12-25 08:16:13 【问题描述】:

我的网站有 2 个域,托管在 Google 应用引擎中。我想 301 将不太理想的域上的任何请求重定向到更理想的域。

我已尝试将以下内容添加到我的 web.xml

<servlet>
    <servlet-name>WebServlet</servlet-name>
    <servlet-class>com.wmar.api.WebServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>WebServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>redirectFilter</filter-name>
    <filter-class>com.wmar.api.WebFilterRedirect</filter-class>
</filter>
<filter-mapping>
    <filter-name>redirectFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

对于 servlet,它会命中它,但是如果域正确,我不知道如何加载静态资源(理想情况下只是传递给一些默认的静态文件处理程序)。

对于过滤器它没有击中它。

使用 servlet 2.5 / google app engine java 实现我想要的最佳方式是什么?

谢谢

【问题讨论】:

【参考方案1】:

我现在意识到,当前理想的解决方案是创建一个单独的应用程序引擎项目并将非规范域指向它,该项目具有一个简单的 servlet,仅 301 重定向到规范域。

对于 Http 到 https 301s app.yaml 可以与 secure: always 一起使用。

正如 konqi 所指出的,尝试在一个应用引擎项目/模块中完成所有操作会产生不良副作用。

【讨论】:

重定向项目很小,预热时间很短。我不明白你的其他评论。谢谢,我不知道 web.xml 中的传输保证。我会测试一下。 嗯,如果它尚未运行,我的启动时间约为 2.7 秒(如果我认为将来太慢,我也可以切换到 golang)。然后,由于这些是 301 重定向,浏览器将缓存它们(与 javascript 不同),并且它在未来是即时的。大多数域提供商不提供免费的 301 重定向,这需要网络服务器来接收请求。我的问题是“.. google app engine。我想 301 将不太理想的域上的任何请求重定向到更理想的域。”抱歉,您的解决方案没有解决这个问题!

以上是关于google app engine java - 基于域的重定向的主要内容,如果未能解决你的问题,请参考以下文章

Google App Engine (Java) + Spring 管理的 PersistenceManager

在 Google App Engine/Java 中实现通配符搜索

Google-App-Engine 上的 Grails - 它死了吗? [关闭]

google app engine java - 基于域的重定向

在单个 Google App Engine 项目中同时使用 Java 和 Python

在 Google App Engine (Java) 中使用 Cron 执行后端