我正在尝试创建一系列网站,这些网站都作为一个应用程序运行,但具有不同的设计(用于本地化)。
我的想法是将单独的域名映射到一个站点。例如:www.mysite1.com映射到www.mysite.appspot.com/mysite1和www.mysite2.com映射到www.mysite.appspot.com/mysite2
我猜测必须有一个url模式或什么东西从web.xml传递一个servlet站点的名称?我希望像www.mysite.appspot.com/mysite1/forumpost/3/这样的网址可以通过与www.mysite.appspot.com/mysite2/forumpost/3/相同的servlet进行处理。 理想情况下,我想将站点名称作为参数传递给servlet。
当然有人之前做过这个,或者有一些标准的做法吗?我有一个关于解析url以获取网站名称的模糊想法,但我对servlet等很新,并且认为有人可能能够对这种情况有所了解。
谢谢!
答案 0 :(得分:3)
您无法映射自己的appspot.com应用子域(例如,foo.mysite.appspot.com),但您可以直接将任意域映射到您的应用,例如www.mysite1.com和www.mysite2 .com - 只需将它们全部作为别名添加到您的Google Apps帐户,然后将它们映射到您的App Engine应用。完成后,您只需检查应用程序中Host标头的内容,将请求路由到相应的处理程序(或以其他方式更改您返回的内容)。
答案 1 :(得分:0)
尝试使用javax.servlet.Filter
并根据HTTP请求标头“Accept-Language
”转发到特定于语言的页面(我认为就是那个)。您可以通过拨打javax.servlet.HttpServletRequest.getHeader(String)
来获取此信息。
这样,您的网站就会有一个网址,而且内部会处理与特定语言网页的分离。