首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache mod-针对特定URL模式的代理ProxyErrorOverride

Apache mod-针对特定URL模式的代理ProxyErrorOverride
EN

Stack Overflow用户
提问于 2011-09-29 03:04:47
回答 3查看 9.9K关注 0票数 13

我正在使用带有mod-proxy的Apache2.2,并且我已经用几个ProxyPass语句配置了代理从远程URL到本地URL。我需要从Apache返回这些代理URL的自定义错误文档,因此我在mod-proxy配置中设置了“HTTP”以及一些ErrorDocument指令(带有本地ProxyErrorOverride路径),以返回一些感兴趣的ErrorDocument状态代码的自定义错误页面。但是,当返回一个我没有为其创建ErrorDocument指令的状态代码时,Apache会用一个默认的错误页面替换响应主体,而不是保持原始响应主体不变。这不适用于应用程序。所以我真的有两个问题:

1)如果我没有为特定状态码定义ErrorDocument覆盖,是否可以将Apache配置为保持原始响应正文不变?

2)是否可以将ProxyErrorOverride指令仅应用于我的ProxyPass语句中的某些URL?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-14 16:55:06

正如arober11在上面的评论中指出的:

担心答案是:不和不。如果该指令可以限制为一个位置、目录或一组URL,那么在手册页的"Context“部分中就会有一些内容: httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxyerroroverride

另一方面:你可以自己把它添加到mod_proxy.c中。

票数 2
EN

Stack Overflow用户

发布于 2015-04-24 04:46:43

问题2的绝对可行。使用内部重定向到新主机或端口,这是可能的。使用主机的简要概述(在DNS中添加noErrorOverrideUrl、doErrorOverrideUrl或apache-machine的/etc/hosts ):

代码语言:javascript
复制
NameVirtualHost *:80
<VirtualHost *:80>
   RewriteEngine On
   RewriteRule ^(/noErrorOverrideUrl/.*) http://noErrorOverrideUrl$1 [L,P]
   RewriteRule ^(/doErrorOverrideUrl/.*) http://doErrorOverrideUrl$1 [L,P]          
</VirtualHost>

<VirtualHost *:80>
   ServerName noErrorOverrideUrl
   ProxyErrorOverride Off
   ProxyPass ...
   ...
</VirtualHost>

<VirtualHost *:80>
   ServerName doErrorOverrideUrl
   ProxyErrorOverride On
   ProxyPass ...
   ...
</VirtualHost>

使用端口的简要概述:

代码语言:javascript
复制
Listen 80
Listen 81
Listen 82
<VirtualHost *:80>
   RewriteEngine On
   RewriteRule ^(/noErrorOverrideUrl/.*) http://server:81$1 [L,P]
   RewriteRule ^(/doErrorOverrideUrl/.*) http://server:82$1 [L,P]
</VirtualHost>

<VirtualHost *:81>
   ProxyErrorOverride Off
   ProxyPass ...
   ...
</VirtualHost>

<VirtualHost *:82>
   ProxyErrorOverride On
   ProxyPass ...
   ...
</VirtualHost>
票数 2
EN

Stack Overflow用户

发布于 2019-06-28 03:49:15

您可以升级apache并使用2.4+上可用的If语句。

代码语言:javascript
复制
<VirtualHost *:80>
  ...
  <If "%{REQUEST_URI} =~ m#^\/QA(.*)$#">
      ProxyErrorOverride Off
  </If>
  ..
</VirtualHost>

Documentation

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

https://stackoverflow.com/questions/7588229

复制
相关文章

相似问题

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