![ProxyPass 有 2 个案例](https://linux22.com/image/607382/ProxyPass%20%E6%9C%89%202%20%E4%B8%AA%E6%A1%88%E4%BE%8B.png)
制定以下两条规则效果很好:
ProxyPass / http://localhost:8080/app
ProxyPassReverse / http://localhost:8080/app
当客户端访问 domain.com 时,Apache 会调用应用服务器并且按预期工作。
问题是有一个由应用服务器生成的目录,我不想在其前面添加/应用程序。
例如:
domain.com/app/styles/file.css (actual case)
domain.com/styles/files.css (this is how I want this)
有任何想法吗?
答案1
我仍然不能 100% 确定你的问题出在哪里。如果你想让浏览器看到类似这样的内容
<link rel="stylesheet" href="/styles/main.css" type="text/css" />
它要求主.csstomcat 托管的文件/app/styles/main.css
尝试:
ProxyPass /styles http://localhost:8080/app/styles
ProxyPassReverse /styles http://localhost:8080/app/styles
ProxyPass / http://localhost:8080/app
ProxyPassReverse / http://localhost:8080/app
相反,如果你想让浏览器看到类似这样的内容
<link rel="stylesheet" href="/apps/styles/main.css" type="text/css" />
它得到了主.csstomcat 托管的文件/styles/main.css
尝试:
ProxyPass /apps/styles http://localhost:8080/styles
ProxyPassReverse /apps/styles http://localhost:8080/styles
ProxyPass / http://localhost:8080/app
ProxyPassReverse / http://localhost:8080/app
无论哪种情况,Apache 都会按照配置文件中出现的顺序进行匹配。