为了账号安全,请及时绑定邮箱和手机立即绑定

Spring pageContext.request.contextPath

Spring pageContext.request.contextPath

达令说 2023-03-31 15:10:41
我在安装了 Tomcat 服务器的远程服务器上运行一个 Spring 应用程序,它可以通过https://mydom.com:8080/myapp.为了通过 访问我的应用程序https://mydom.com,我安装了 Apache 并将其配置为反向代理。这是配置:<VirtualHost _default_:443>   SSLEngine On   SSLCertificateFile /opt/ssl/mydom_com.crt   SSLCertificateKeyFile /opt/ssl/mydom_com.key   SSLCertificateChainFile /opt/ssl/mydom_com.ca-bundle   BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL   ServerName mydom.com   ProxyRequests Off   ProxyPreserveHost On   ProxyPass / http://127.0.0.1:8080/myapp/   ProxyPassReverse / http://127.0.0.1:8080/myapp/   ProxyPassReverseCookiePath /myapp /</VirtualHost>${pageContext.request.contextPath}现在,我尝试在我的文件中使用jsp以获取正确的链接和资源路径。当我从 IDE 运行时它返回/myapp,这很好。当它运行时mydom.comreturn /myapp,这不好。我需要得到一个空字符串或/.我如何配置以获得正确的价值${pageContext.request.contextPath}?
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

更改您的映射:


ProxyPass / http://127.0.0.1:8080/myapp/

ProxyPassReverse / http://127.0.0.1:8080/myapp/

ProxyPassReverseCookiePath /myapp /

到:


ProxyPass /myapp/ http://127.0.0.1:8080/myapp/

ProxyPassReverse /myapp/ http://127.0.0.1:8080/myapp/

你所有的问题都将得到解决。

尝试在代理中重写上下文路径是 Tomcat 管理员精神错乱的第一大原因。只是不要这样做。

如果您希望您的应用程序在 上可用/,请执行以下操作之一:

  1. 重定向//myapp/并使用我上面重写的映射

  2. 在 Tomcat 端将您的应用程序从 重命名为/myapp/并将您的映射修复为 map ->///

任何其他配置都将是创可贴、修复和创可贴到修复的无休止循环,您将不得不应用它们。


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信