ISAPI Rewrite - несколько сайтов на одном веб-сервере - PullRequest
0 голосов
/ 03 июня 2011

У меня возникают трудности с поиском четкой / краткой документации по настройке правил ISAPI_Rewrite для нескольких сайтов, работающих на одном веб-сервере.Нам нужно, чтобы у каждого сайта был собственный файл httpd.ini, в котором описан собственный набор правил.Кроме того, каждый сайт может использовать разные версии модуля ISAPI_Rewrite (это необходимо учитывать).Мы используем IIS 6.0.

Кто-нибудь есть какие-либо предложения о том, как это сделать?

Любая помощь будет принята с благодарностью!

Спасибо,

-Tom

1 Ответ

3 голосов
/ 04 июля 2011

Поскольку вы упоминаете httpd.ini, я полагаю, вы используете isapi_rewrite v2. Я предлагаю перейти на v3 на IIS 6 (для машин IIS 7 helicon настоятельно рекомендует использовать «Ape», который я не пробовал.)

Это предполагает платную версию isapi_rewrite v3; бесплатная версия Lite не будет работать для этого ответа.

В версии 3 файл называется .htaccess вместо httpd.ini

Каждый веб-сайт может иметь свой собственный файл .htaccess с независимыми правилами. Поместите каждый файл в корневую папку каждого веб-сайта.

Для разных версий модуля я не пытался сохранить две установленные версии и не уверен, что это возможно. Вместо этого v3 имеет директиву RewriteCompatibility2, которую вы можете включить или опустить в каждом файле .htaccess. Это должно позволить вам использовать правила v2 на некоторых сайтах, а правила v3 - на других сайтах.

Очевидно, что это делает v3 совместимым с v2, но не на 100% соответствует синтаксису. Они предоставляют инструмент для перевода существующих правил. Кажется, я помню, что это почти ничего не изменило. Основным отличием является обработка параметров строки запроса - это явно в правилах v2, но обрабатывается отдельно в v3. (После полного преобразования в v3 правила становятся намного проще.)

Вышесказанное должно решить ваши проблемы, но есть и более сложные конфигурации:

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

Есть также директивы для VirtualHost, Directory, Location, Files. Обзор здесь: http://www.helicontech.com/isapi_rewrite/doc/context.htm. Я должен был прочитать это несколько раз, поэтому прочитайте отдельные директивы для более четких объяснений.

...