SSI-команды не работают для shtml файлов в iis - PullRequest
2 голосов
/ 28 августа 2009

Следующий код должен показывать имя порта или сервера, а не оба.

Я всегда получаю оба, несмотря ни на что?

<!--#if expr="${SERVER_PORT} = 80" -->
<!--#echo var="SERVER_PORT"-->
<!--#else -->
<!--#echo var="SERVER_NAME"-->
<!--#endif -->

Я тоже без радости попробовал следующее:

<!--#if expr="${SERVER_PORT} = '80'" -->
<!--#if expr="${SERVER_PORT} = /80/" -->

Как мне заставить это работать?

1 Ответ

4 голосов
/ 28 августа 2009

Если вы используете IIS 6, проверьте, разрешены ли включения на стороне сервера:

  1. Запустить IIS MMC
  2. Разверните дерево и выберите веб-сервис. Расширения
  3. Проверьте, включены ли на стороне сервера Разрешено

Если это так, убедитесь, что в свойствах веб-сайта включены карты сценариев SSI:

  1. Запустить IIS MMC
  2. Правый клик и свойства на сайте
  3. Выберите вкладку "Домашний каталог"
  4. Нажмите Конфигурация
  5. Убедитесь, что расширения .shtm, shtml and .stm сопоставлены с C:\WINDOWS\system32\inetsrv\ssinc.dll и что глаголы установлены на GET и POST.

Обновлен:

IIS не поддерживает конструкцию #if/#else/#endif или #set. Директивы включения на стороне сервера IIS 6.0 описаны здесь:

Директивы включения на стороне сервера IIS (библиотека MSDN)

Они для всех целей и целей такие же, как те, которые используются в IIS 5.1.

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

Учебник Apache: введение в состав серверной части

...