apache - Tomcat、Mod_rewrite、Mod_proxy : how do I keep the original URI path in a proxied request?

标签 apache jsp tomcat mod-rewrite mod-proxy

我使用以下配置来代理请求,并使用 mod_rewrite、mod_proxy 将 url 从 Apache 重写到 Tomcat。

# In apache virtual hosts

ProxyRequests Off
ProxyPreserveHost On

...
# In .htaccess file

#forward non-resource URL to jsp
RewriteRule ^([^\.]+)/?$ http://localhost:8080/mycontext/$1.jsp [P] 

我的问题:是否可以指示 Tomcat 保留原始 URI,以便我可以使用 request.getRequestURI() 读取它?这种配置是否可行,还是我必须求助于 mod_jk 或其他一些代理连接器?

当前保留的是主机名……不是请求路径。我还使用 Apache 2.2 和 Tomcat 6。

最佳答案

一个不太麻烦的解决方案:

RewriteRule ^([^\.]+)/?$ http://localhost:8080/mycontext/$1.jsp&_requri_=%{REQUEST_URI}

然后从_requri_查询参数中读取请求uri。

如果有更好的方法,请告诉我。

关于apache - Tomcat、Mod_rewrite、Mod_proxy : how do I keep the original URI path in a proxied request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9510004/

相关文章:

tomcat - 部署Spring boot app jar文件嵌入tomcat

java - 从 Java 中启动 tomcat

java - jsp函数调用和xml

java - spring boot 中的嵌入式 Tomcat 阻塞了一些关键字

apache - 在 RewriteCond 条件模式中使用变量

macos - Mac OS X - 如何将 Web 项目存储在/Library 以外的位置

Apache RewriteRule,-(破折号)作为替换

python - Django WSGI 路径

java - 下拉菜单中的 i18n 使用 s :select tag

java - Struts 2 选择带有数组列表值的标签