有时它会让我感到沮丧。
我在App Engine上运行了一个使用子域的应用程序。我想根据是否使用子域重定向到不同的HTML页面。
例如,如果用户尝试通过子域注册新帐户,这并没有多大意义,所以我想重定向到promary域上的注册页面:
user_subdomain.main_domain.com/signup_for_new_account.html ----redirect to--> main_domain.com/signup_for_new_account.html
答案 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指向首先检查主机名的动态处理程序,然后发出重定向或静态内容的代理。