apache tomcat + apache httpd + mod_proxy + mod_rewrite + 表单发布数据
Posted
技术标签:
【中文标题】apache tomcat + apache httpd + mod_proxy + mod_rewrite + 表单发布数据【英文标题】:apache tomcat + apache httpd + mod_proxy + mod_rewrite + form post data 【发布时间】:2012-08-28 19:56:08 【问题描述】:请帮助我。我确实试图在这里阅读旧帖子找到类似的问题,但我没有找到任何东西。 我的帖子数据有问题。 我正在使用 Apache tomcat + ajp + Apache Httpd 2.2 这是我的 httpd.conf 的一部分:
#Application has context url = konakart, and tomcat post 8789 for ajp
#I want to avoid typing port in my URL
ProxyPass / ajp://localhost:8789/konakart/
#pretty urls
#I don't want to type http://myshop.com/konakart
#I want http://myshop.com
#I want to put away /konakart/ from URL
RewriteEngine on
Options +FollowSymlinks
RewriteRule ^/konakart/(.*) /$1 [R=301,L]
RewriteRule send-mail index.php?send-mail [NC,P]
一切正常...除了 POST 数据丢失。 似乎是因为 R=301。但我不能收起 R=301。如果我这样做,没有任何效果。 我正在使用 VDS,所以我可以做任何事情...... 请帮我解决这个问题。:(
【问题讨论】:
【参考方案1】:这是 mod_rewrite 和 GWT 以及我的卷曲手的组合问题;) 这是有效的 httpd.conf 代码,请参阅代码中的 cmets:
#Tomcat through Apache httpd
ProxyPass /konakart ajp://localhost:8789/konakart
ProxyPass / ajp://localhost:8789/konakart/
#pretty urls
RewriteEngine on
Options +FollowSymlinks
#do not do anything for POST actions and GWT stuff. It's better not to touch it at all.
#mod_rewrite breaks interconnection of GWT RPC calls.
RewriteCond %REQUEST_URI !/(.*)EditCartSubmit\.do(.*)
RewriteCond %REQUEST_URI !/(.*)Submit\.do(.*)
RewriteCond %REQUEST_URI !/(.*)\.cache\.html
RewriteCond %REQUEST_URI !/(.*)\.nocache\.(.*)\.js
#Previously GWT servlet had mapping "/konakart"
#I've renamed it to "/KonakartGWTServlet"
RewriteCond %REQUEST_URI !/KonakartGWTServlet
RewriteRule ^/konakart/(.*) /$1 [R=301,L]
【讨论】:
以上是关于apache tomcat + apache httpd + mod_proxy + mod_rewrite + 表单发布数据的主要内容,如果未能解决你的问题,请参考以下文章