我正在使用USBWebServer(Apache,PHP,MySql(在本地开发一个网站,我想使用SSI,所以我可以包含页眉,页脚等内容。
在我的.htaccess中,我放置了以下指令:
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
我有 main index.shtml,里面有指令:
<!--#include virtual="./files/navbar.shtml" -->
<!--#include virtual="./files/contact.shtml" -->
而且效果很好。
但是,当我将网站上传到我的网络服务器时,使用.htaccess中的相同指令,index.shtml不能包含任何内容。
我目前的解决方法是将 index.shtml 更改为 index.php并使用 php 包含以下内容:
<?php
virtual('./files/navbar.shtml');
?>
,但我想知道为什么 SSI 在服务器上无法按预期工作,我该怎么做才能使其与 .shtml 一起使用?
假设您服务器上的Web服务器是2.x Apache: 您必须启用包含模块。如果您在服务器上具有管理员权限,则可以通过以 root 身份执行来自己执行
a2enmod include
并使用"service apache2 restart">或"/etc/init.d/apache2 restart"重新启动 Web 服务。
如果没有,您必须询问您的管理员或服务器提供商。 此外,.htaccess的使用可能会受到服务器配置的限制,请查看是否配置了允许覆盖或类似选项(或再次询问您的管理员(。