我有一个 LAMP(CentOS)“共享”服务器环境,我无法完全控制 Apache 网络服务器,但只能通过.htaccess
文件部分控制它;
我可以 SSH 那个环境并在我的用户分区中使用 Bash。
在那种环境下,我有一个 MediaWiki 网站。
MediaWiki 核心包含一些我想禁用但不允许这样做的选项(例如,不能禁用编辑摘要框或页脚链接)。
由于我不是 PHP 程序员,也不想更改庞大的核心 PHP,我想以某种方式防止这些功能被解析到客户端。
不能通过 CSS 和/或 JavaScript 禁用这些功能,因为用户可以禁用 CSS 和/或 JS,然后使用这些功能
我想防止在 PHP 文档仍然在类似情况下执行时解析此类功能:在执行任何 PHP 行或例程之前调用某些 PHP 函数(用于处理标记);
然后,根据某些标准(可能是 CSS 类),该函数会过滤掉该行或例程的执行,因此将不会被解析的 HTML 结构,
但 PHP 7.3.11 没有这样的一个函数。
是否有任何调整可以防止使用 Bash 解析要解析的 HTML 元素?
我不知道您为什么要为此使用 bash 或任何其他类型的 shell 脚本。这不是它的用途。就此而言,即使您使用了专为 HTML 操作而设计的东西,在 MediaWiki 和用户浏览器之间添加一个额外的转换层来避免学习少量 PHP 似乎也是个坏主意。
作为替代解决方案,我建议配置 MediaWiki 以直接生成您想要的 HTML。除了大量的配置变量,MediaWiki 还允许提供可编程的钩子来修改其操作的许多部分。例如,SkinTemplateOutputPageBeforeExec挂钩可用于修改进入 HTML 模板的大部分输入,包括页脚链接。
如果挂钩提供的灵活性不足以满足您的需求,另一种选择是制作您自己的 MediaWiki皮肤。这将让您完全替换 HTML 模板并以您想要的任何方式对其进行自定义。有一个制作新皮肤的教程,你可能想看看,但基本上最简单的方法是从克隆现有皮肤开始(例如教程附带的示例皮肤,或默认的内置矢量皮肤)并对其进行调整,直到它按照您想要的方式工作。