首页 > 解决方案 > 为什么 Apache 在尝试包含来自另一台服务器的 SSI 时会得到 404?

问题描述

我有两个网站可以生成我想合并到一个网页中的数据。站点一(“主”站点)生成大部分网页,站点二包含我想包含在该页面上的其他数据。我认为最好的方法是使用 SSI 将站点 2中的数据包含到站点 1生成的网页中。站点 1上的 Apache似乎正确地联系站点 2,但站点 2返回 404。如果我使用浏览器直接联系站点 2 ,使用与站点 1使用的完全相同的 URL ,我会得到正确的数据。为什么站点 1上的 Apache 不能获得相同的数据?

我尝试了两种方法来包含来自站点二的数据,一种是直接包含数据,另一种是使用反向代理,但都不起作用。其他(本地)SSI 和反向代理在此页面上工作正常。这是两个包含行:

<!--#include virtual="/servertwodata" -->
<!--#include virtual="http://www.servertwo.com/execs/somescript.sh?task=overview" -->

我在 Apache 错误日志中得到的错误是:

unable to include "http://www.servertwo.com/execs/somescript.sh?task=overview" in parsed file /var/www/html/index.html, subrequest returned 404, referer: http://www.serverone.com/index.html

有谁知道为什么站点 1上的 Apache 会从站点 2获得 404 ,但通用浏览器中完全相同的 URL 会得到数据吗?

标签: apachessi

解决方案


文档中

该值是一个(% 编码的)URL 路径。URL不能包含方案或主机名,只能包含路径和可选的查询字符串。如果它不以斜杠 (/) 开头,则它被认为是相对于当前文档的。

简而言之:它不支持外部 URL。


推荐阅读