应用引擎 - 重定向到静态内容

时间:2010-10-24 19:08:53

标签: google-app-engine redirect

有时它会让我感到沮丧。

我在App Engine上运行了一个使用子域的应用程序。我想根据是否使用子域重定向到不同的HTML页面。

例如,如果用户尝试通过子域注册新帐户,这并没有多大意义,所以我想重定向到promary域上的注册页面:

user_subdomain.main_domain.com/signup_for_new_account.html
----redirect to-->
main_domain.com/signup_for_new_account.html

3 个答案:

答案 0 :(得分:3)

我讨论了子域路由here。简而言之,您可以编写自己的(相当简单的)WSGI中间件,负责将不同的子域路由到不同的WSGI应用程序。

答案 1 :(得分:1)

在Python中,您可以check os.environ['SERVER_NAME'] == 'main_domain.com',然后redirect

对于Java我认为该请求具有返回服务器名称的getServerName方法。然后你可以redirect,这基本上意味着设置几个标题并返回。

答案 2 :(得分:0)

您可以使用javascript:

在客户端执行此操作
if (location.hostname !== 'main_domain.com') {
  location.href = 'http://main_domain.com' + location.pathname;
}

服务器端做同样的事情比较棘手。

仅根据路径处理路由,而不是主机名。在app.yaml中,不可能将不同的处理程序分配给不同主机名上的相同路径。您需要将/signup_for_new_account.html指向首先检查主机名的动态处理程序,然后发出重定向或静态内容的代理。