问题标签 [mod-proxy-html]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1712 浏览

apache - 如何使用 Apache 2.4 重写 XML 中的 URL?

Apache 2.4 包含mod_proxy_html,这很棒,它可以捕获从服务器返回的 HTML 中的各种 URL 并修复它们。但是我有一个 Seam 应用程序,它有时会使用完全限定的 URL 将文本/xml 文件发送回客户端,这些 URL 也需要重写,而 mod_proxy_html 不能修复它们。

显然有一个mod_proxy_xml曾经与 mod_proxy_html 分开存在,但 Apache 没有包含它。有没有办法让 mod_proxy_html 配置为做同样的事情?我需要它来修复从服务器返回的 HTML 和 XML 文件中的 URL。

跟进:

我继续与此作斗争,我尝试了一些不同的解决方案但没有成功,包括使用 mod_substitute (不知何故我配置不正确,因为它似乎永远不会用任何东西代替任何东西)和使用强制标志 mod_proxy_html 必须尝试强制它执行某个路径下的所有文件。

0 投票
0 回答
307 浏览

apache - Tomcat 上的 Java 网站 Apache 上的 PHP 网站 - 如何将 PHP 网页转换为 Java 网页?

我们在 Tomcat 上部署了一个 Java Web 应用程序。我们还设置了 Apache 和 mod_proxy_ajp 以将 Web 请求(端口 80/443)路由到 Tomcat。

我们想在同一个 Apache 服务器上部署一个 PHP 应用程序 - 可能在一个子目录 (/var/www/ourapp) 下。

现在我们想在 Java 应用程序生成的网页中访问和显示来自 PHP 应用程序的网页。计划实施单点登录。示例:来自 java 的网页具有(JQuery 选项卡),我们喜欢在选项卡中显示 PHP 网页,而所有其他 HTML 都来自 java 应用程序。

您能否全面说明如何进行此操作?主要是 1. 我们应该如何在用于将 Web 请求路由到 Tomcat 的同一 Apache 服务器上安装/设置我们的 PHP 应用程序?即设置子域或安装在子目录 2. 如何将 PHP 页面带入当前网页(由 java 生成)。我们可以使用 AJAX 请求还是应该使用 Java PHP Bridge/Querces 此类应用程序?

提前感谢您的时间。问候。

0 投票
2 回答
5305 浏览

apache - mod_proxy_html 配置 - 截断问题

我已经尽可能多地环顾四周,我已经到了完全被难住的地步。

我正在运行一个顶部有 Apache 的 RedHat 服务器,我用它作为代理,位于外部世界和其他两个应用程序服务器之间,具有完全不同的基础(一个 IIS,一个 Linux)。

这两个服务器都有正确的内部网络 URL,驻留在它们上的应用程序可以理解。应用程序(DotNetNuke 和 WordPress 派生)都生成 HTML 5 页面,其中包含正确/适当的标记,并在代理之外正确呈现(即在内部网络上)。

然而,当通过代理传递这些页面时,结果似乎是缺少 CSS 和 JavaScript 文件末尾的字符。

因此(在实践中),JavaScript 代码如下:

或这样的 CSS:

...变成这样的代码:

或像这样:

代理设置使用 mod_proxy 和 mod_proxy_html Apache 模块 - 我相当确定我遇到的问题与 mod_proxy_html 的配置有关,目前看起来像这样:

在这里浏览 Apache 文档:http ://httpd.apache.org/docs/2.4/en/mod/mod_proxy_html.html - 但是没有给出任何直接的线索。

有没有人遇到过同样的问题?或者我错过了什么快速的东西?

任何帮助将不胜感激!

更新:

最终,问题似乎是 mod_proxy_html 在将所有内容解析为 UTF-8 编码时的默认行为(当某些内容不是时 - 尽管尽了最大努力,但无法修改)。

为此,经过一番努力,改用了 mod_substitute(只是将文本解析为文本,忽略文件编码)以及缓存解决方案以加快加载时间。

耻辱 mod_proxy_html 不适用于这个项目 - 但最终找到了一种方法!

0 投票
1 回答
37258 浏览

apache - ProxyHTML 重写 URL

我已经设置了 2 个 apache 服务器。一个在端口 80 上,另一个在端口 8077 上。我想通过反向代理查看 8077 上服务器上的所有内容。目前我有:

这让我可以进入网站的初始页面,但图片、css 和其他页面的链接不起作用。

例如 html 中的 css 显示为

我真正想要的地方

让它从 8077 服务器获取文件。我可以用当前设置做什么才能让它发挥作用?

0 投票
1 回答
467 浏览

apache - 使用带有 Apache 的 mod_proxy 操作 HTML,例如删除广告

现在这只是一个技术挑战,但基本上我想做以下事情:

创建一个基于 web 的反向(网关)代理mod_proxymod_proxy_html它不仅重写 HTML url 以匹配代理的主机名,而且重写或操作正在代理的 HTML。

这种对“中间人”网关代理的操作将允许人们做各种事情,例如:

  • 移除广告
  • 将文本从一种语言翻译成另一种语言
  • 以其他方式破解或“改进”原始网站

当然,它也可能被用于很多不好的事情,但这超出了这个问题的范围。

我知道它会mod_proxy_html解析原始 HTML 以重写所有 URL,但它是否也允许我编写自己的代码来评估和操作正在解析的 HTML?或者还有其他模块吗?

或者,是否有可用的反向代理可以做到这一点?我愿意适应任何适合此目的的语言。

0 投票
1 回答
2178 浏览

php - Apache 的带有 PHP 标头的 mod_proxy_html("Location:..."); 不重定向

我已经用谷歌搜索了这个问题的废话,但一无所获,所以希望你们能提供帮助。

目标
配置反向代理(使用 Apache 的 mod_proxy)以启用通过 Internet 访问内部 PHP 应用程序,使用 mod_proxy_html 重写我的应用程序中的 URL。

问题描述
考虑仅使用以下代码的landing.php:

和 redirect.php 仅:

使用我的 httpd.conf 中的这个片段

当我转到http://example.com/landing.php并单击“redirect.php”时,它应该带我回到landing.php 页面。相反,我在 Firefox 中收到“此连接已重置”,或在 Chrome 中收到“未收到数据”。(仅供参考,去http://internal.example.com/redirect.php重定向正确。)

问题:
为什么重定向会通过反向代理失败,我该如何解决这个问题?

提示
我发现了一些可能有用的东西......

我知道如果我注释掉“ProxyHTMLLinks a href”,这将正常工作。但显然,这是我需要的重写功能。

我还可以将 redirect.php 页面更改为以下内容,这样可以正常工作:

我猜这个文本以某种方式对页面或 HTTP 标头做了一些事情,使 mod_proxy_html(或更具体地说是 ProxyHTMLLinks)的运行方式与没有它时不同。

我还可以将 redirect.php 页面更改为以下内容并让它工作:

这是因为 ProxyHTMLLinks 默认只应用于 Content-Type 文本/html 文件。但是,我不想破解所有对 header("Location:...") 的调用来完成这项工作。我不介意更改对 header("Location:...") 的所有调用,假设我正在更改的是纠正问题,而不是创建 hack。

最后,我在反向代理服务器上进行了一些数据包嗅探,发现标头(“Location:...”)向反向代理服务器发送了 HTTP/1.1 302 Not Found,但它没有通过它到请求redirect.php 的浏览器。当我尝试上述“解决方案”之一时,302 然后从反向代理服务器传递到请求redirect.php 的计算机。我的理解是Location头应该去浏览器,然后浏览器应该请求传回的新位置。所以它失败了,因为 302 没有进入浏览器......

仅供参考,我已经尝试查看错误日志以查看 mod_proxy_html 是否在某处失败,但我没有看到任何内容,尽管我对有关日志记录的具体建议持开放态度,因为我不是 100% 确定我是否'正在正确设置日志记录。

抱歉,这太长了,只是想尽可能具体。提前致谢!

0 投票
0 回答
223 浏览

apache - 使用子文件夹技术和代理添加 i18n

我有一个在上下文“/”上运行的 webapp,我现在想使用子文件夹技术将它国际化。

我想要以前托管的同一个网站

现在在 url 下提供不同语言的内容

我正在考虑在 Tomcat 前面添加一个 Apache 代理,以使我的 webapp 保持不变。

假设应用程序已经基于请求中存在的识别语言的 cookie 支持 i18n。

使用 Apache 代理和重写规则,我可以从请求中去除语言,并使用提取的语言添加这个 cookie。

passProxyReverse然后我需要 Apache 通过添加特定语言( ?)来转换来自 Tomcat 的重定向

我还需要对我的应用程序生成的 HTML 进行某种解析,以便将看起来像http://www.mysite.com/folder/contact.html的链接修改为http://www.mysite.com/de/folder/contact.htmlmod_proxy_html?)

我考虑过其他解决方案,例如在不同的上下文中部署相同的 webapp 并通过 memcache 共享会话。或者直接使用 webapp 中的一些过滤器和一些自定义 JSTL 等来管理这种语言子文件夹分离。

所有解决方案似乎都太复杂了。

我想要实现的是出于 SEO 原因使用子文件夹技术,并使我的 webapp 不太了解这一点。

我不明白我是不是把它复杂化了。
有没有更好/更简单的方法来实现我所需要的?

0 投票
1 回答
2920 浏览

json - 用 mod_proxy_html 替换 json 编码的 URL

我目前已经安装了反向代理。一个阿帕奇正在做这项工作。所以我配置了 mod_proxy 来适应 url。我还使用 mod_proxy_html 来适应 HTML 和 JavaScript 链接。现在我遇到了一个 ajax 调用的问题,它返回一个 json 编码的 url。

有没有办法用 mod_proxy_html 做到这一点?有没有人建议如何调整这些网址?

提前谢谢

0 投票
1 回答
423 浏览

mod-proxy-html - mod_proxy_html 和 AJAX 响应

我正在使用mod_proxy_html并且 AJAX 响应包含在 HTML 中

这是由完成的mod_proxy_html,我想避免这种情况发生。

0 投票
0 回答
216 浏览

apache - 通过 Apache 代理丢失样式

我有一个启用了 html_proxy_module 的 Apache httpd 2.4。

它被配置为以这种方式接收几个不同的上下文根:

并且这些不同的请求被重定向到它们自己的 Tomcat,有些是 Tomcat 7,有些是 Tomcat 6。

我发现我的应用程序使用不同的上下文根和不同的路径来获取 .css、.xhtml、.jpg 并且所有这些都包含在 httpd.conf 中的 ProxyPass 和 ProxyPassReverse 中,但我仍然丢失了一些样式包含在 .xhtml 文件中。

我看到的另一件事是源代码正在丢失标头定义:

有没有人发现这样的问题?我不知道标题的问题是否会影响样式的问题。

非常感谢。