SSI включает в себя не работает на сервере, но работает локально

Я разрабатываю веб-сайт локально с помощью USBWebServer (Apache, PHP, MySql), и я хотел использовать SSI, чтобы я мог включать такие вещи, как header, footer и так далее.

В мой .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?

0

Решение

Предполагая, что веб-сервер на вашем сервере является 2.x Apache:
Вы должны включить модуль Include. Если у вас есть права администратора на сервере, вы можете сделать это самостоятельно, выполнив от имени пользователя root

a2enmod include

и перезапустите веб-сервис с помощью «service apache2 restart» или «/etc/init.d/apache2 restart».
Если нет, то вы должны спросить своего администратора или поставщика сервера.
Кроме того, использование .htaccess может быть ограничено конфигурацией сервера, посмотрите, не настроены ли опции allow overide или аналогичные (или еще раз: обратитесь к администратору).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]