宝塔面板中启用SSI需分Nginx和Apache两种配置:Nginx需在站点配置中添加ssi on、ssi_silent_errors off及ssi_types,并将文件改为.shtml;Apache需启用mod_include模块、添加Options +Includes,且确保路径与权限正确。

如果您在宝塔面板中部署的网站需要使用服务器端包含(SSI)指令动态嵌入文件或执行命令,但页面中相关指令未被解析,则可能是Web服务器未启用SSI模块或未正确配置解析规则。以下是实现SSI功能的具体操作步骤:
一、确认并启用Nginx的SSI模块支持
Nginx默认不启用SSI功能,需手动添加SSI相关指令以允许解析<!--#include-->等标签。该配置作用于站点的Nginx配置文件,直接影响SSI指令是否被识别与执行。
1、登录宝塔面板,进入【网站】列表,找到目标站点,点击右侧【设置】按钮。
2、在弹出窗口中切换至【配置文件】选项卡。
3、在location ~ .*\.(html|htm)$或匹配HTML后缀的location块内,插入以下两行配置:
ssi on;
ssi_silent_errors off;
4、若需支持SSI执行命令(如<!--#exec cmd-->),还需追加:ssi_types text/html shtml html htm;
5、点击右上角【保存】,随后点击【重载配置】使更改生效。
二、修改站点文件扩展名以触发SSI解析
Nginx默认仅对.shtml扩展名启用SSI解析,若直接使用.html文件,即使开启ssi on也可能不解析。通过扩展名映射可强制将特定后缀交由SSI处理。
1、回到站点【配置文件】选项卡,在server区块内(通常位于location之外)添加如下配置:
location ~ \.html$ {
ssi on;
ssi_types text/html;
}
2、保存配置并点击【重载配置】。
3、将原HTML文件重命名为.shtml后缀(例如index.shtml),确保Nginx按预期调用SSI模块。
三、为Apache环境启用Includes模块并配置Options
若站点使用Apache作为Web服务器,SSI依赖mod_include模块及目录级Options +Includes指令。未启用会导致<!--#include-->被当作普通注释忽略。
1、在宝塔面板中进入该站点【设置】→【配置文件】选项卡。
2、查找<Directory开头的区块(通常位于DocumentRoot路径下)。
3、在对应</Directory>前一行插入:
Options +Includes
4、确保mod_include已启用:进入【软件商店】→【已安装】→【Apache】→【设置】→【配置修改】,检查LoadModule include_module modules/mod_include.so未被注释(即无#开头)。
5、保存配置,返回站点设置页点击【重载配置】。
四、验证SSI语法与文件路径有效性
SSI指令能否成功执行,不仅取决于服务器配置,还依赖语法规范与被包含文件的可访问性。路径错误或权限不足将导致包含失败且不报错(除非启用ssi_silent_errors off)。
1、在网页中使用标准SSI语法,例如:<!--#include file="header.html" -->
2、确认header.html与当前页面位于同一目录,或使用virtual指定绝对路径:<!--#include virtual="/includes/footer.shtml" -->
3、检查被包含文件权限:通过【文件】管理器定位该文件,右键【权限】,确保其他用户具有读取权限(至少644)。
4、在浏览器中直接访问被包含文件URL,确认返回HTTP 200状态且内容可正常显示。










