问题标签 [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.
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 必须尝试强制它执行某个路径下的所有文件。
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 此类应用程序?
提前感谢您的时间。问候。
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 不适用于这个项目 - 但最终找到了一种方法!
apache - ProxyHTML 重写 URL
我已经设置了 2 个 apache 服务器。一个在端口 80 上,另一个在端口 8077 上。我想通过反向代理查看 8077 上服务器上的所有内容。目前我有:
这让我可以进入网站的初始页面,但图片、css 和其他页面的链接不起作用。
例如 html 中的 css 显示为
我真正想要的地方
让它从 8077 服务器获取文件。我可以用当前设置做什么才能让它发挥作用?
apache - 使用带有 Apache 的 mod_proxy 操作 HTML,例如删除广告
现在这只是一个技术挑战,但基本上我想做以下事情:
创建一个基于 web 的反向(网关)代理mod_proxy
,mod_proxy_html
它不仅重写 HTML url 以匹配代理的主机名,而且重写或操作正在代理的 HTML。
这种对“中间人”网关代理的操作将允许人们做各种事情,例如:
- 移除广告
- 将文本从一种语言翻译成另一种语言
- 以其他方式破解或“改进”原始网站
当然,它也可能被用于很多不好的事情,但这超出了这个问题的范围。
我知道它会mod_proxy_html
解析原始 HTML 以重写所有 URL,但它是否也允许我编写自己的代码来评估和操作正在解析的 HTML?或者还有其他模块吗?
或者,是否有可用的反向代理可以做到这一点?我愿意适应任何适合此目的的语言。
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% 确定我是否'正在正确设置日志记录。
抱歉,这太长了,只是想尽可能具体。提前致谢!
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.html
(mod_proxy_html
?)
我考虑过其他解决方案,例如在不同的上下文中部署相同的 webapp 并通过 memcache 共享会话。或者直接使用 webapp 中的一些过滤器和一些自定义 JSTL 等来管理这种语言子文件夹分离。
所有解决方案似乎都太复杂了。
我想要实现的是出于 SEO 原因使用子文件夹技术,并使我的 webapp 不太了解这一点。
我不明白我是不是把它复杂化了。
有没有更好/更简单的方法来实现我所需要的?
json - 用 mod_proxy_html 替换 json 编码的 URL
我目前已经安装了反向代理。一个阿帕奇正在做这项工作。所以我配置了 mod_proxy 来适应 url。我还使用 mod_proxy_html 来适应 HTML 和 JavaScript 链接。现在我遇到了一个 ajax 调用的问题,它返回一个 json 编码的 url。
有没有办法用 mod_proxy_html 做到这一点?有没有人建议如何调整这些网址?
提前谢谢
mod-proxy-html - mod_proxy_html 和 AJAX 响应
我正在使用mod_proxy_html
并且 AJAX 响应包含在 HTML 中
这是由完成的mod_proxy_html
,我想避免这种情况发生。
apache - 通过 Apache 代理丢失样式
我有一个启用了 html_proxy_module 的 Apache httpd 2.4。
它被配置为以这种方式接收几个不同的上下文根:
并且这些不同的请求被重定向到它们自己的 Tomcat,有些是 Tomcat 7,有些是 Tomcat 6。
我发现我的应用程序使用不同的上下文根和不同的路径来获取 .css、.xhtml、.jpg 并且所有这些都包含在 httpd.conf 中的 ProxyPass 和 ProxyPassReverse 中,但我仍然丢失了一些样式包含在 .xhtml 文件中。
我看到的另一件事是源代码正在丢失标头定义:
有没有人发现这样的问题?我不知道标题的问题是否会影响样式的问题。
非常感谢。