我正在开发一个grails 2.2.3应用程序。这个应用程序有一个后端,一个营销网站和一些用户页面。
每个用户页面应可通过username.domain.tld,营销网站通过domain.tld和www.domain.tld和后端通过域名.tld/后端或backend.domain.tld。
我已经实现了每个部分,但我的问题是我只有一个用于"/“的URLMapping。如果我呼叫营销网站,我会得到营销视图作为响应。如果我调用username.domain.tld,我也会得到营销站点作为响应,但我希望得到/user/页面作为响应。使用username.domain.tld/ user /page,我得到了给定用户的正确响应(我有一个过滤器,它检查域名的http头并将子域名设置为params.username)。
我必须做什么才能让userpage子域的"/“下的userpages正常工作?我需要将我的应用程序拆分成不同的应用程序(插件架构)吗?我应该做这样的事情吗?http://techsravi.blogspot.de/2011/05/managing-multiple-domain-and-sub-domain.html,还是应该用Apache2重写url?
对于我的问题,最好、最干净的解决方案是什么?
发布于 2013-09-23 14:54:30
一种解决方案是将Apache配置与ProxyPass和ProxyPassReverse结合使用,在tomcat中将一些url与不同的VirtualHosts混合使用,将一些url重定向到另一个url。
<VirtualHost *:80>
ServerName username.domain.tld
ProxyPass / http://mycomputer:8080/user
ProxyPassReverse / http://mycomputer:8080/user
</VirtualHost>
<VirtualHost *:80>
ServerName www.domain.tld
ProxyPass / http://mycomputer:8080/
ProxyPassReverse / http://mycomputer:8080/
</VirtualHost>
<VirtualHost *:80>
ServerName backend.domain.tld
ProxyPass / http://mycomputer:8080/backend
ProxyPassReverse / http://mycomputer:8080/backend
</VirtualHost>
我还没有准确地测试过它,但在其他类似的情况下,它是有效的,我们在这里经常使用它。
发布于 2013-09-23 22:23:26
发布于 2014-03-16 15:49:53
我找到了这个答案Grails and Subdomains,它可能会解决你的问题。
它有解决方案的子域,这是您需要为每个用户名。为此,它使用了filter。
另一篇文章http://fbflex.wordpress.com/2011/08/23/custom-theming-grails-applications/也有类似的解决方案,它使用了不同的方法来解决他们的问题。其中之一就是使用过滤器。
https://stackoverflow.com/questions/18944486
复制相似问题