IIS Url-Rewrite - PullRequest
       1

IIS Url-Rewrite

0 голосов
/ 11 июня 2011

Я пытаюсь использовать перезапись модуля IIS7 Url Rewrite services.mydomain.com / some-file-here до mydomain.webhost.com / folder / some-file-here

Правило следующее:

Pattern = ^services.mydomain.com/(.*)$
Action = Rewrite
Rewrite URL = http://mydomain.webhost.com/folder/{R:1}

Проблема в том, что IIS продолжает выдавать мне 404 не найденных ошибки. Я застрял в этом в течение нескольких дней. Есть идеи?

1 Ответ

1 голос
/ 19 июня 2011

У вас неправильный шаблон. Он не должен включать имя домена или строку запроса - только путь без косой черты. Смотрите рабочее правило ниже:

<rule name="MyRewriteRule" stopProcessing="true">
    <match url="^(some-file-here)$" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^services\.mydomain\.com$" />
    </conditions>
    <action type="Redirect" url="http://mydomain.webhost.com/folder/{R:1}" />
</rule>

Приведенное выше правило будет срабатывать только в том случае, если имя хоста равно services.mydomain.com. Если вам не требуется такое дополнительное условие (которое является необязательным), просто удалите эти 3 строки: <conditions>...</conditions>

Кроме того, вышеприведенное правило будет выполнять только один конкретный редирект от services.mydomain.com/some-file-here до mydomain.webhost.com/folder/some-file-here. Если вам нужно перенаправить ЛЮБОЙ файл таким образом, используйте вместо этого этот:

<rule name="MyRewriteRule" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^services\.mydomain\.com$" />
    </conditions>
    <action type="Redirect" url="http://mydomain.webhost.com/folder/{R:1}" />
</rule>
...