SSI包括不在服务器上工作但在本地工作

时间:2017-07-31 18:40:35

标签: php apache include ssi server-side-includes

我正在使用USBWebServer(Apache,PHP,MySql)在本地开发一个网站,我想使用SSI,所以我可以包含页眉,页脚等内容。

在我的.htaccess中,我提出了以下指令:

Options +Includes

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

我有主要的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一起使用?

1 个答案:

答案 0 :(得分:0)

假设您服务器上的Web服务器是2.x Apache: 您必须启用Include模块。如果您在服务器上拥有管理员权限,则可以通过以root身份执行来自行完成

a2enmod include

并使用&#34; service apache2 restart&#34;重新启动webservice。或&#34; /etc/init.d/apache2 restart&#34;。
如果不是,您必须询问您的管理员或服务器提供商。 此外,.htaccess的使用可能会受到服务器配置的限制,请参阅是否配置了允许覆盖或类似选项(或再次:询问您的管理员)。