2009-10-27 142 views
0

我有一个运行在tomcat 6下的应用程序。在它的前面我有一个Apache服务器,它正在转发所有的请求。也就是说,用户向Apache发送“ ”而不是向tomcat发送消息。因为某些原因它被请求 以下:当Apache服务器接收表单的请求Apache mod_rewrite问题

http://www.mydomain.com/myApp 

,它已被转发到http://www.mydomain.com/ $ PREFIX /对myApp

其中$ PREFIX是POST参数。这个$ PREFIX参数也可用作COOKIE 并作为额外的标题。 我没有找到一种方式使用mod_rewrite读取文章参数/ cookies/headers。

这可能吗?如果没有,我应该使用另一个Apache模块/连接器?

在此先感谢。

Luis

回答

2

您不能在mod_rewrite中使用POST数据。这是因为POST数据不在http请求的HEADER中,它在BODY中。

我的建议是,您在发布页面上执行一个操作,将前缀添加到URL中,这意味着您甚至不需要重写。

+0

感谢您的回答。是否有可能使用cookie或额外的头文件参数来做到这一点?你提出的建议是不可能的,因为它不仅要在应用程序中完成,而且要在evey中使用插件等。事实上,这是我的第一个方法,但由于这会产生大量的工作,我已经放弃了它。我必须找到更高层次的解决方案。 – Luixv 2009-10-27 09:36:07

1

尝试像(我正则表达式是一个有点古怪,可能需要一点修修补补):

RewriteCond %{HTTP_COOKIE} yourcookie=(.*) 
RewriteRule ^/myApp(.*)$ /%1/$1 [R,L] 

%1将反向引用组中的RewriteCond模式。

更多示例here

+0

感谢您的回答。我正在尝试类似的东西。为你+1 :-) – Luixv 2009-10-27 13:29:53