Включение на стороне сервера больше не работает - [произошла ошибка при обработке этой директивы]

У нас есть страница, которая уже много лет использует серверную часть. Недавно он перестал работать. На страницу не вносились изменения

<!--#include virtual="..\..\includes\nav.include" -->

В нижней части страницы с именем contact.html

Страница nav.include просто содержит html для панели навигации. Нет джаваскрипта. Нет сценариев на стороне сервера. Просто хтмл.

Есть ли какой-то параметр, который необходимо установить, чтобы SSI работали так, как это реализовано здесь (включая файл с необычным расширением внутри html-файла)?


person MrVimes    schedule 13.06.2013    source источник


Ответы (7)


Решение, которое я обнаружил вчера:

  1. Я продублировал и переименовал все свои страницы в .php (на всякий случай сохранил исходные html-файлы!)
  2. Я заменил все {‹#include virtual="folder_name/file_name.ext" -->} на

        <?php include "folder_name/file_name.ext" ; ?> 
    

    с соответствующим количеством точек и косых черт в зависимости от того, где страницы находятся в моей иерархии папок. ({} выше предназначен только для выделения кода)

  3. Наконец, я переименовал исходный index.html в какое-то другое имя, чтобы вместо index.html подхватывался index.php.

Кажется, это работает - я все еще тестирую все страницы и ссылки - очень утомительное и трудоемкое занятие!

ВКЛЮЧАЕТ СИНТАКСИС:

В файле php используйте

    <?php include "..//folder_name/file_name.ext" ; ?>

В html-файле используйте

    <!--#include virtual="../folder_name/file_name.ext" -->

ПОПРОБУЙТЕ С КОЛИЧЕСТВОМ "..." И КОЛИЧЕСТВОМ "///" В ПРИВЕДЕНОМ ВЫШЕ СИНТАКСИСЕ, ЧТОБЫ ПОЛУЧИТЬ ПРАВИЛЬНУЮ КОМБИНАЦИЮ!!!!

  1. Для меня все мои включения представляют собой небольшие html-файлы в папке ABC, которая находится непосредственно под веб-корнем.
  2. Для страниц, которые находятся в родственных папках ABC, т. е. в других папках непосредственно под webroot, «..//» — это количество точек и косых черт, которые работают.
  3. Для страниц, которые находятся непосредственно в веб-корне (т.е. не в какой-либо папке внутри веб-корня), работало имя_папки/имя_файла.ext без точек или косых черт.
  4. У меня не было времени проверить количество точек и тире, необходимое для любого другого уровня в иерархии!

Надеюсь, это поможет!

person vinaya    schedule 21.06.2013
comment
Я думал о преобразовании моих страниц в php и использовании php, но у меня довольно много страниц, а также изменение многочисленных страниц на .php. Мне также пришлось бы изменить все, что ссылается на эти страницы, а это довольно много ссылок. . Что я сделал, так это перенаправил все страницы на мой новый сайт, размещенный в стойке, используя файл htaccess, хранящийся в корне старого сайта. Я ценю, что вы ответили, и я уверен, что ваше решение принесет пользу другим. :) - person MrVimes; 21.06.2013

Вы используете GoDaddy? Они сделали то же самое с моим сайтом, и я нашел на их форумах кого-то, кто сказал использовать включаемый файл вместо виртуального.

person user2499159    schedule 19.06.2013
comment
Да, боже. Я открыл с ними дело, и они сказали, что привлекут техников для его решения. Я не получил ответа от них. Сейчас это спорно для меня, потому что я использовал это как возможность удалить рассматриваемый сайт и заменить его сайтом, размещенным в стойке. Я пытался изменить «виртуальный» на «файл» в тот день, когда что-то пошло не так, но это не сработало. - person MrVimes; 19.06.2013

Только что переключился на серверы Godaddy, и мой SSI перестал работать. Я сделал файл .txt со следующим:

Обработанный сервером AddHandler .html

Я загрузил его в общедоступную папку html, затем переименовал в .htaccess, и все заработало.

person Jaime Warlock    schedule 03.01.2015

У меня было слишком много файлов, чтобы преобразовать все расширения в PHP, поэтому мне пришлось найти другой ответ, если это вообще возможно.

Мне на какое-то время вроде помогала замена include virtual на include file, но потом через несколько дней опять сломалось. Я предполагаю, что GoDaddy еще не закончил возиться с конфигурацией SSI. о_О

На сегодняшний день решение состояло в том, чтобы преобразовать все относительные пути в абсолютные спецификации относительно корня сайта. . Например, мне пришлось преобразовать:

<!--#include virtual="..\..\includes\nav.html" -->

To:

<!--#include virtual="\includes\nav.html" -->

Используя этот подход, я смог включить файлы HTML в другие файлы HTML.

Я обнаружил это на одной из своих страниц, где смешаны абсолютные и относительные пути.

ХТН

person Trevor    schedule 04.07.2013
comment
См. также: support.godaddy.com/groups/web-hosting/forum/topic/ - person Trevor; 04.07.2013

Я часто сталкиваюсь с этой проблемой на своем сайте, размещенном на GoDaddy. Мне нужно зайти на страницу конфигурации сервера, отключить SSI, сохранить настройки, затем снова включить SSI и установить флажок «Использовать SSI для файлов .HTM и .HTML), и он снова начинает работать.

Проблема на стороне GoDaddy. По какой-то причине он забывает, что ему нужно анализировать SSI в файлах, пока вы не выключите и не включите эту опцию. Их поддержка уровня 2 предлагала использовать только Virtual вместо File в команде Include... что нелепо, поскольку это не только ничего не меняет, SSI включает в себя большую часть времени нормально... до тех пор, пока это не перестанет работать. т.

person user3626805    schedule 12.05.2014

Я также обновляю старые страницы .html на .php и заменяю некоторые операторы включения php на всех страницах, когда некоторые из страниц отображаются [произошла ошибка при обработке этой директивы].

Страницы, отображающие ошибку, также ссылались на старый файл .ssi, которого даже не было в каталоге, на который он указывал. Я удалил старый код включения в несуществующий файл .ssi на этих страницах, и это устранило ошибку.

person kas    schedule 17.06.2014

Эта ошибка возникает, когда у вас есть в вашем коде html-документация, подобная этой

<!--#My awesome documentatacion-->

чтобы исправить это, удалите #, вот так

<!-- My awesome documentatacion-->
person Deyson    schedule 01.05.2016