问题标签 [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.
.htaccess - 使用 htaccess 包含文件(标题)
我想在每个页面调用中包含一个特定文件。
为简单起见,假设我有一个应该预先添加到每个文件的标题。
(例如,一个检查各种用户代理内容的 php 脚本。)
我可以使用 mod_rewrite 将所有请求发送到该文件,然后使用 PHP 将请求的页面包含到文件中,但这可能会让路径和诸如此类的东西令人头疼,如果不需要,我宁愿不使用 mod_rewrite。
我记得在 htaccess 中有一个“包含”调用,但我在搜索中唯一能找到的是 ServerSideIncludes——这不是我需要的。SSI(我收集)扫描文档以查找呼叫,而我需要在进入被调用的文件之前包含此文件。
php - 在 PHP 中使用 Apache 服务器端流控制?
正如在这个问题中所讨论的那样,我正在使用带有条件流控制语句的 Apache mod_include来根据父页面的 URL 改变包含的 shtml 文件的行为。我遇到的问题是网站上的某些页面是 PHP 页面,这似乎意味着 mod_include 指令被忽略(而是被视为标准 html 注释)。
有没有办法让 PHP 页面正确处理这些 mod_include 指令?
具体来说,这是我要处理的内容:
类似的行块在站点上的 .shtml 文件中起作用,但对于 php 页面,以上所有内容最终都会输出到客户端。
编辑:我想出的最接近解决方案的方法是模仿 php 文件中包含的 shtml 文件的功能。我不喜欢这个解决方案,因为这意味着将来添加链接需要将它们添加到多个位置。
linux - SSI 和 lighttpd
我在我的 Ubuntu 12.04 localhost 上使用 lighttpd 1.4.28,但我无法让它支持 SSI。测试页面中的 SSI 指令:
不起作用并在源代码视图中显示为注释。我听说在 'mod_compress' 之前必须包含 'mod_ssi' 的错误,所以我的模块部分是这样的:
我应该怎么做才能使 SSI 工作?
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 压缩的内容并正确显示?(假设我会想象某种与输出过滤器相反的输入过滤器..)
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 做类似的正则表达式解析技巧也无济于事
apache - Apache httpd mod_include - 处理包含 400 多个响应的空白
我想让你使用 Apache 2.2 httpd 到 SSI 包含 URL
我的问题是,如果我的应用服务器上不存在 SSI 包含页面,它会以 404 响应和默认错误页面 HTML 进行响应,然后通过包含将其缝合到我的页面中。对于失败的 (4xx,5xx) SSI 包含,我只希望 SSI 包含将空字符串添加到我的页面。
它没有出现 Apache 2.2。支持“onerror”指令(我认为可以解决这个问题)——而且我没有看到任何其他选项。
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 实现,但我找不到有关此问题的更多详细信息。有人可以帮助我或指出解决方案吗?
我的阿帕奇配置:
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:
知道它是如何工作的,还是让我自己压缩每个文件?
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上的文档:
我尝试过以各种方式修改语法,例如避免使用正则表达式匹配并改用精确字符串比较,但这也不起作用。我无法让一个表达式在新语法中工作。
为什么新语法不起作用?
apache - 当 Apache SSI 失败时,我可以返回错误代码吗?
所以我有一个使用 Apache 包含的 Web 应用程序。像这样的东西:
现在,当 /some/application/component 失败时,Apache 仍然返回缺少输出的页面的其余部分。我可以设置 errmsg 配置以显示特定错误,但页面本身仍返回 200 响应代码。在 SSI 失败的情况下,有没有办法可以在父页面上设置 HTTP 响应代码(设置为 500)?
谢谢!