Технология Helicon - ISAPI_Rewrite: RewriteRule для определенных доменов - PullRequest
1 голос
/ 21 января 2009

Может ли кто-нибудь помочь мне перевести следующий псевдокод в код, понятный для ISAPI_Rewrite модуля Helicon Tech :

if (domain == something.com OR domain == www.something.com)
{
    // The rules inside this scope will only apply to the domain:
    // something.com / www.something.com

    // This should match "something.com/test" and/or "www.something.com/test"
    RewriteRule /something /something/something.aspx
}


if (domain == test.com OR domain == www.test.com)
{
    // The rules inside this scope will only apply to the domain:
    // test.com / www.test.com

    // This should match "test.com/test" and/or "www.test.com/test"
    RewriteRule /test /test/test.aspx
}

Документация меня очень смущает.

Любая помощь очень ценится.

Ответы [ 4 ]

3 голосов
/ 21 января 2009

Если ISAPI_Rewrite работает так же, как mod_rewrite в Apache, попробуйте это:

RewriteCond %{HTTP_HOST} ^(www\.)?something\.example$
RewriteRule ^/something$ /something/something.aspx

RewriteCond %{HTTP_HOST} ^(www\.)?test\.example$
RewriteRule ^/test$ /test/test.aspx

Примечание: я использовал другие доменные имена в соответствии с RFC 2606 .


Редактировать: Похоже, что для ISAPI_Rewrite необходимо заменить %{HTTP_HOST} на Host:, чтобы получить текущий хост.

2 голосов
/ 21 января 2009

Это «старый» синтаксис, который использовался до версии 3:

RewriteCond Host: ^(www\.)?something\.com$
RewriteRule ^/something$ /something/something.aspx

RewriteCond Host: ^(www\.)?something\.com$
RewriteRule ^/test$ /test/test.aspx

Это будет новый синтаксис для версии 3 и выше. Это ближе к mod_rewrite:

RewriteCond %{HTTP:Host} ^(www\.)?something\.com$
RewriteRule ^/something$ /something/something.aspx

RewriteCond %{HTTP:Host} ^(www\.)?something\.com$
RewriteRule ^/test$ /test/test.aspx

Само регулярное выражение одинаково в обеих версиях.

1 голос
/ 12 августа 2010

Обратите внимание, что описанный выше метод httpd.ini для каждого каталога не поддерживается облегченной версией ISAPI 3: http://www.helicontech.com/isapi_rewrite/doc/litever.htm

0 голосов
/ 21 января 2009

Спасибо за усилия Гамбо и Томалак. Очень ценю это.

Я нашел другой подход: вы помещаете файл (httpd.ini), содержащий конкретные перезаписи, в конкретный виртуальный каталог / домен в корневую папку этого виртуального каталога / домена.

Это также исключает загрязнение глобального конфигурационного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...