问题标签 [mod-include]

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 回答
1699 浏览

.htaccess - 使用 htaccess 包含文件(标题)

我想在每个页面调用中包含一个特定文件。

为简单起见,假设我有一个应该预先添加到每个文件的标题。
(例如,一个检查各种用户代理内容的 php 脚本。)

我可以使用 mod_rewrite 将所有请求发送到该文件,然后使用 PHP 将请求的页面包含到文件中,但这可能会让路径和诸如此类的东西令人头疼,如果不需要,我宁愿不使用 mod_rewrite。

我记得在 htaccess 中有一个“包含”调用,但我在搜索中唯一能找到的是 ServerSideIncludes——这不是我需要的。SSI(我收集)扫描文档以查找呼叫,而我需要在进入被调用的文件之前包含此文件。

0 投票
2 回答
491 浏览

php - 在 PHP 中使用 Apache 服务器端流控制?

正如在这个问题中所讨论的那样,我正在使用带有条件流控制语句的 Apache mod_include来根据父页面的 URL 改变包含的 shtml 文件的行为。我遇到的问题是网站上的某些页面是 PHP 页面,这似乎意味着 mod_include 指令被忽略(而是被视为标准 html 注释)。

有没有办法让 PHP 页面正确处理这些 mod_include 指令?

具体来说,这是我要处理的内容:

类似的行块在站点上的 .shtml 文件中起作用,但对于 php 页面,以上所有内容最终都会输出到客户端。

编辑:我想出的最接近解决方案的方法是模仿 php 文件中包含的 shtml 文件的功能。我不喜欢这个解决方案,因为这意味着将来添加链接需要将它们添加到多个位置。

0 投票
2 回答
1971 浏览

linux - SSI 和 lighttpd

我在我的 Ubuntu 12.04 localhost 上使用 lighttpd 1.4.28,但我无法让它支持 SSI。测试页面中的 SSI 指令:

不起作用并在源代码视图中显示为注释。我听说在 'mod_compress' 之前必须包含 'mod_ssi' 的错误,所以我的模块部分是这样的:

我应该怎么做才能使 SSI 工作?

0 投票
1 回答
721 浏览

apache - 使用 mod_include 和 mod_proxy 包含远程 .shtml 文件时出现乱码

我正在尝试使用 apache mod_include。

我有两台运行 apache 的服务器:我试图在我的 test_local.shtml (server1) 中包含一些来自 test_remote.shml (server2) 的简单文本。

test_local.shtml

test_remote.shtml

起初它不起作用(在error_log中出现“文件不存在”错误)。看起来出于安全原因,我设法包含的唯一文件位于我的本地服务器(server1)上,具有本地路径,但没有远程 url。然后我明白我需要将 mod_proxy(和 mod_proxy_html)与 mod_include 结合使用才能使远程包含工作。

所以我将以下内容添加到我的 httpd.conf(在 server1 上):

然后我将 test_local.shtml 中的包含行更改为:

这次没有错误,包含了一些内容,但生成的文本都是乱码:

我的配置中是否缺少某些内容?怎么了?

更新:我怀疑这与两台服务器之间发送(然后读取)数据的方式有关..例如压缩或类似。我检查了 mod_deflate 配置部分,它包含在两个服务器中并在两个服务器中工作,它是相同的。任何的想法?谢谢

更新 2:在 server2 上禁用 SetOutputFilter DEFLATE,在 server1 上包含 mod_include 的文本是完全可读的。所以这就是问题的根源:如何配置 server1 来处理 gzip 压缩的内容并正确显示?(假设我会想象某种与输出过滤器相反的输入过滤器..)

0 投票
3 回答
1282 浏览

regex - httpd 2.4 中的 Apache 正则表达式反向引用 UNREACHABLE?

我喜欢新的apache httpd 2.4有很多很酷的新东西!

ap_expr是这些非常有前途的新功能之一,

..但以下 SSI 片段无法按预期工作:

if工作但 var 未设置!这没有任何意义。

error.log 说:

该文档(http://httpd.apache.org/docs/2.4/expr.html#other)令人困惑,附近没有任何示例

我知道 SSI 有一个旧版(解决方法)开关。但我不想使用它,因为旧的开始标签和结束标签是强制的 Legacy

使用 SetEnvIfExpr 做类似的正则表达式解析技巧也无济于事

0 投票
1 回答
552 浏览

apache - Apache httpd mod_include - 处理包含 400 多个响应的空白

我想让你使用 Apache 2.2 httpd 到 SSI 包含 URL

我的问题是,如果我的应用服务器上不存在 SSI 包含页面,它会以 404 响应和默认错误页面 HTML 进行响应,然后通过包含将其缝合到我的页面中。对于失败的 (4xx,5xx) SSI 包含,我只希望 SSI 包含将空字符串添加到我的页面。

它没有出现 Apache 2.2。支持“onerror”指令(我认为可以解决这个问题)——而且我没有看到任何其他选项。

http://httpd.apache.org/docs/2.2/mod/mod_include.html

0 投票
1 回答
1692 浏览

apache - 使用 mod_include 使 apache mod_proxy ProxyErrorOverride 包含原始页面内容

我正在使用 apache mod_proxy 将某些请求转发到 IIS 服务器,并使用 ProxyErrorOverride 在错误页面上提供企业风格。

但是,我想在自定义错误页面中包含原始服务器错误消息,以便在调试 500 错误时提供一些附加信息。现在整个错误页面都被替换了。根据 http://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxyerroroverride 这可以通过 mod_include 实现,但我找不到有关此问题的更多详细信息。有人可以帮助我或指出解决方案吗?

我的阿帕奇配置:

0 投票
1 回答
485 浏览

javascript - htaccess mod_deflate 和 mod_include 与 JS 文件

我使用 mod_deflate 压缩我的 (html|css|js|xml|php|txt) 文件。(工作没有任何问题)

我还将我的 CSS / JS 脚本与 mod_include 模块结合起来以保存请求......两者都运行良好......但它们是未压缩的。

在我的组合 CSS 文件中,我使用了 Outputfilter DEFLATE,它与 Include MOD 一起使用,但在我的组合 JS 文件中它不起作用。

如果我使用它,Include Mod 不起作用,它会响应组合 JS 文件的原始包含内容:

HTACCESS

它输出 .combined.js:

知道它是如何工作的,还是让我自己压缩每个文件?

0 投票
0 回答
322 浏览

apache - SSI/mod_include:新的 ap_expr 语法未按文档说明工作

我的网站使用 SSI(服务器端包含)来检查条件(使用#if expr)并根据条件是真还是假返回不同的 HTML 代码。这多年来一直运行良好,直到最近,我的网站开始显示错误[an error occurred while processing this directive]。我发现在较新版本的 Apache httpd 中语法发生了变化expr所以我假设我的托管服务提供商最近升级了 Apache httpd,这导致旧语法被破坏。Apache httpd 现在的版本是 2.4.29。

我设法通过添加SSILegacyExprParser on到我的.htaccess文件以返回旧语法暂时解决了这个问题(感谢这个问题)。但我想找到一个使用新语法的永久解决方案。

这是适用于的旧语法 SSI 代码SSILegacyExprParser on

(变量thisDoc已在前面设置。)

ap_expr这是使用不起作用的新语法的 SSI 代码。它[an error occurred while processing this directive]再次显示。在编写此代码时,我正在关注http://httpd.apache.org/docs/current/expr.html上的文档:

我尝试过以各种方式修改语法,例如避免使用正则表达式匹配并改用精确字符串比较,但这也不起作用。我无法让一个表达式在新语法中工作。

为什么新语法不起作用?

0 投票
0 回答
67 浏览

apache - 当 Apache SSI 失败时,我可以返回错误代码吗?

所以我有一个使用 Apache 包含的 Web 应用程序。像这样的东西:

现在,当 /some/application/component 失败时,Apache 仍然返回缺少输出的页面的其余部分。我可以设置 errmsg 配置以显示特定错误,但页面本身仍返回 200 响应代码。在 SSI 失败的情况下,有没有办法可以在父页面上设置 HTTP 响应代码(设置为 500)?

谢谢!