IIS7 переписать для REST не работает - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть служба REST, и я пытаюсь удалить .svc - обычная задача / проблема.

Приложение на сервере находится в виртуальном каталоге на веб-сайте по умолчанию (не уверен, важно ли это)

Я установил модуль перезаписи IIS и попытался создать для него правило перезаписи.

http://blah.me.com/here/thingys/get?id=1111

переписать на это:

http://blah.me.com/service.svc/thingys/get?id=1111

В моем web.conf создается следующее:

<rewrite>
        <rules>
            <rule name="GEAPI /here/ to /service.svc/">
                <match url="^(.*?)/here/(.*)$" />
                <action type="Rewrite" url="{R:1}/service.svc/{R:2}" />
            </rule>
        </rules>
    </rewrite>

В графическом интерфейсе регулярное выражение проверяется правильно.

Однако - когда я запускаю это в браузере на сервере, он выдает следующую ошибку 404:

Код ошибки 0x80070002
Запрашиваемый URL http://blah.me.com:80/here/thingys/get?id=1111
Физический путь C: \ MyApp \ here \ thingys \ get


C: \ Myapp - это правильный физический каталог, на который указывает виртуальный каталог в IIS.

Есть что-то, чего я здесь не хватает? Я попытался создать это правило как на веб-сайте по умолчанию, так и в приложении, как по отдельности, так и вместе.

Большое спасибо

* * Р тысячу двадцать-один

1 Ответ

0 голосов
/ 12 февраля 2010

Вы можете использовать это:

<rewrite>
    <rules>
        <rule name="GEAPI /here/ to /service.svc/">
            <match url="^(.*)here(/.+)" />
            <action type="Rewrite" url="{R:1}service.svc{R:2}" />
        </rule>
    </rules>
</rewrite>

IIS выдаст вам только часть URI, которая следует за http://blah.me.com/

...