ScriptMap Httpd для URL без расширений
Существует способ настроить сервер Windows CE HTTPD, чтобы он загружал определенное расширение ISAPI (например, asp.dll) для определенного расширения файла (например, ".asp").
Какой самый простой способ заставить его загрузить расширение ISAPI для имен файлов без расширений в URL?
2 ответа
В конце концов, я не нашел другого способа достичь своей цели, кроме как создать специальный фильтр ISAPI только для этого. Это простой фильтр ISAPI, который обрабатывает событие сервера SF_NOTIFY_URL_MAP и изменяет переменную pszPhysicalPath в соответствии с настройками сопоставления расширений. Чтобы сделать его немного более общим, я сделал так, чтобы он поддерживал не только отображение из путей без расширений, но и отображение из любого в любое расширение. Сопоставления устанавливаются в реестре Windows.
Как это работает, в основном:
- Запрос поступает на сервер HTTPD, скажем, на URL /vroot/file
- Сервер сопоставляет / vroot / файл с некоторым физическим путем, скажем, \disc\vroot\file
- Сервер вызывает фильтр с физическим путем, и фильтр сопоставляет его, скажем, \disc\vroot\file.asp, в соответствии с его настройками.
- Затем сервер обрабатывает файл правильно с asp.dll, в соответствии с настройками реестра ScriptMap.
Если кому-то это нужно, я опубликовал исходный код на GitHub.
Вы пытались использовать "." как подать заявку? Никогда не пробовал себя, это просто идея. Или вы можете использовать расширение ISAPI и переопределить весь виртуальный корень, но это относится ко всем запросам в этом корне, а не только к именам файлов без расширения.