首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Proxypass和Proxypass-也许与RewriteRule相关

Proxypass和Proxypass-也许与RewriteRule相关
EN

Stack Overflow用户
提问于 2016-11-28 09:09:38
回答 1查看 741关注 0票数 1

我有一个关于proxypass和proxypass反向的问题。

我希望能够在我的应用程序(内部)上达到以下目标

https://examplehost/appname/Servletname?method-to-call

但我希望外部进入网站的人看到以下内容:

https://examplehost/Servletname?method-to-call

我的apache2 .conf文件中有以下内容

Proxypass / http://examplehost/appname/ ProxypassReverse / http://examplehost/

但是,当我在外部调用我自己的网站时,我会收到以下错误消息:

请求URL不匹配收件人URL,"/appname/Servletname?“不匹配"/Servletname?

这表明外部链接不仅存在匹配问题,而且首先也会看到错误的链接,因为外部源不应该看到"appname“。

我还尝试在.conf文件中执行以下操作

Proxypass / http://examplehost/appname/ ProxypassReverse / http://examplehost/appname/

有人知道如何隐藏应用程序名称而不删除对app应用程序的访问吗?

感谢任何有用的答案或链接。

EN

回答 1

Stack Overflow用户

发布于 2016-11-28 09:19:09

一个简单的内部RewriteRule应该允许重写,这是一种透明的方式。不需要代理策略及其额外的请求往返:

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^/?Servletname$ /appname/Servletname [L,QSA,NC]

我不太明白你引用的错误信息,但我没有多少信息。问题是哪个组件提供了错误信息..。服务器端?客户端?servlet侧?

当您需要使用代理模块时(为什么.)然后看看apache的重写模块提供的P标志。或者,使用ProxyPass指令当然也是可能的,我只是不认为有任何原因。尽管如此,我还是建议如下:

代码语言:javascript
复制
ProxyPass /Servletname https://examplehost/appname/Servletname
ProxyPassReverse /Servletname https://examplehost/appname/Servletname

还有一个一般性提示:您应该总是倾向于将这样的规则放在http服务器主机配置中,而不是使用.htaccess样式的文件。众所周知,这些文件容易出错,很难调试,而且它们确实减慢了服务器的速度。当您无法控制主机配置(请阅读:真正便宜的托管服务提供者)或您的应用程序依赖于编写自己的重写规则(这显然是一场安全噩梦)时,才会提供它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40840589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档