Apache SSI не работает с изображением как отдельная ссылка

На сайте следующий код для проверки - используется звонок с главной страницы сайта или нет:

<!--#if expr="$DOCUMENT_URI=/^\/index.shtml/" -->
<img...>
<!--#else -->
<a href="/index.shtml"><img...</a>
<!--#endif -->

Код работает на Apache 2.2 без сбоев, но на Apache 2.4 и новее выдает сообщение об ошибке [произошла ошибка при обработке этой директивы]!

Подскажите, как правильно поправить код для работы на любых версиях Apache?


person Lyalin Mikhail    schedule 26.01.2018    source источник
comment
Сначала вам не хватает < в начале   -  person derHugo    schedule 26.01.2018
comment
только это место - код на сайте правильный   -  person Lyalin Mikhail    schedule 26.01.2018


Ответы (1)


Элемент #if expr теперь использует новый анализатор выражений. Что-то вроде этого, но не проверено:

<If "%{DOCUMENT_URI} == m#^/index.shtml$#">
    <img...>
<Else>
    <a href="/index.shtml"><img...</a>
</If>
  1. Давайте посмотрим документацию по парсеру выражений здесь: https://httpd.apache.org/docs/current/en/expr.html

  2. Альтернативой является повторная активация старого синтаксиса с новой директивой SSILegacyExprParser в вашей конфигурации.

Примечание: mod_include необходимо активировать с помощью:

sudo a2enmod include
person Meloman    schedule 26.01.2018
comment
Элемент #if expr теперь использует новый синтаксический анализатор выражений — как насчет кода кросс-версий для старого и нового Apache без SSILegacyExprParser? - person Lyalin Mikhail; 26.01.2018
comment
Сейчас я добавляю пример нового синтаксиса. - person Meloman; 26.01.2018
comment
Ничего @lyalin-mikhail ? - person Meloman; 05.02.2018
comment
Так что, пожалуйста, проголосуйте за ответ, если вы с ним согласны ;-) - person Meloman; 06.02.2018