
IIS配置服务器端包含(SSI)
服务器端包含(SSI)是一种用于动态生成HTML页的脚本语言,该脚本在页面传递到客户端之前在服务器上运行,并且通常涉及将一个文件插入另一个文件。可以创建一个HTML导航菜单,并使用SSI动态将其添加到网站上的所有页面。
IIS6开启SSI
1、允许“在服务器前端的包含文件”
默认情况下Windows 2003的IIS6.0是支持SSI指令的,只要在“WEB服务扩展”允许“在服务器前端的包含文件”即可。可执行文件的位置为: C:\WINDOWS\system32\inetsrv\ssinc.dll ;扩展名为:shtml/shtm。
2、添加“.shtml
/.shtm
”的MIME类型
打开IIS6管理器,打开“本地计算机”的属性 -> MIME类型 -> 新建
后缀名:.shtml
MIME类型:text/html
后缀名:.shtm
Mime类型:text/html
正常情况下,通过以上两步的设置,IIS中的站点就可以运行shtml文档了。如果发现仍然还不能运行shtml文件,可以检查一下站点的应用程序映射,是否将.shtml
和.shtm
的处理程序指向了C:\WINDOWS\system32\inetsrv\ssinc.dll 。
IIS7、IIS10开启SSI功能
打开服务器管理器(控制面板里的添加Windows功能),选择Web服务器=>应用程序开发=>服务器端包含,安装即可。
注意:如果引用公共页面比如导航、头部菜单、底部信息等,需要把编码设置成统一的,例如主页使用utf-8编码,引入的文件也必须是utf-8编码,否则可能会导致乱码。
Apache开启SSI
sudo a2enmod include
在httpd.conf文件中找到以下两行代码:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Options Includes // Includes 为追加 如include的内容不需要exec,则使用IncludesNoExec
重启Apache
Nginx开启SSI
Nginx服务器开启SSI需要修改Nginx.conf配置文件。
- ssi: 默认值off,启用ssi时将其设为on
- ssi_silent_errors: 默认值off,开启后在处理SSI文件出错时不输出错误提示”[an error occurred while processing the directive]”。
- ssi_types: 默认是text/html,所以如果需支持html,则不需要设置这句,如果需要支持shtml则需要设置:ssi_types text/shtml
server {
listen 80;
server_name admin-demo.laputateam.com;
root /home/wwwroot/Laputa_admin_demo;
index index.html index.htm index.php;
location ~.*\.php?$ {
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
参考链接: Apache SSI 使用
Nginx 配置 SSI 的方法