Назад | Перейти на главную страницу

Как включить SSI для всех файлов HTML?

Я использую MAMP для разработки сайтов. У меня каждый сайт находится в отдельной папке в папке htdocs. Я управляю одним сайтом, на котором мне нужно использовать ssi-директивы, потому что хост не позволяет включать php.

Я не прокомментировал эти строки в файле httpd.conf:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Я добавил файл .htaccess в папку htdocs со следующим:

AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes

На индексной странице сайта включение работает с использованием:

<!--#include file="top-nav.shtml" -->

Но он не работает с файлами в любой подпапке. Я получаю такую ​​ошибку:

[произошла ошибка при обработке этой директивы]

Вы используете то же самое include директива на всех страницах подпапок тоже? Если это так, ваша проблема кажется очевидной: вы не связываетесь с включаемым файлом должным образом (если у вас нет такого же файла в каждом каталоге на сайте, что как бы нарушит цель)

Кроме этого, я хотел бы знать; какую ошибку вы получаете на сервере? Как вы думаете, почему SSI не включен - особенно если учесть, что он работает хотя бы с одним файлом.

Не уверен, что это было решено, потому что вопрос все еще открыт.

Чтобы добавить некоторые пояснения. используйте «файл», когда включаемый вами файл находится в том же каталоге, что и файл, который на него ссылается. Используйте «виртуальный», если файл находится в подкаталоге.

Кроме того, просто мое мнение, но хорошей практикой является помещать ваши включения в отдельный каталог (обычно называемый "inc" или "includes").

Итак, для того, что вы пытаетесь достичь, вы захотите использовать ...

<!--#include virtual="../inc/top-nav.html" -->