Создание URL перезаписи на домен - ASP.NET \ IIS 7 - PullRequest
0 голосов
/ 29 ноября 2010

Я использую ASP.NET 3.5 с IIS 7 с установленным модулем перезаписи URL 2.0.

Когда я создаю первое правило перезаписи теста:

    <rewrite>
        <rules>
            <rule name="Test rule1" patternSyntax="ExactMatch">
                <match url="w/123/test" />
                <action type="Rewrite" url="article.aspx?id=123" />
            </rule>           
        </rules>
    </rewrite>

Работает отлично (http://www.myapp.com/w/123/test -> http://www.myapp.com/article.aspx?id=123).

НО, когда я пытаюсь использовать его в принадлежащем мне домене, он не работает. Я предполагаю, что в моем синтаксисе что-то не так. Вот что яя пытаюсь сделать:

            <rule name="Test Rule2" patternSyntax="ExactMatch">
                <match url="http://www.my-domain.com" />
                <action type="Rewrite" url="article.aspx?id=123" />
            </rule> 

Когда я пытаюсь просмотреть http://www.my-domain.com, я ожидаю, что меня перенаправят на страницу article.aspx, а я нет, я просто получаю страницу 404, не найденную.

Как мне написать правило для домена, а не для пути?

Заранее спасибо, Гал.

1 Ответ

1 голос
/ 06 декабря 2010

Правила относятся к месту, где живет web.config.Вам не нужно указывать домен для вашего правила.Входными данными для вашего /> всегда будет URL-путь без строки запроса и без косой черты.Это означает, что если вы запросите «http://www.my -domain.com /», то ввод будет «».Если вы запрашиваете "http://www.my -domain.com / w / 123 / test", ввод будет "w / 123 / test".

Если вы просто перейдете к http://www.my -домену.com /"модуль« Документ по умолчанию »в IIS попытается переписать ваш запрос в что-то вроде http://www.my -domain.com / default.html », и это не будет соответствовать вашему правилу,Обязательно отключите модуль документов по умолчанию.

Если это не сработает, в URL Rewrite есть функция трассировки, с помощью которой вы можете просмотреть пошаговый рабочий процесс:

http://learn.iis.net/page.aspx/467/using-failed-request-tracing-to-trace-rewrite-rules/

NB. Для правил сервера входной URL всегда содержит начальную косую черту.

...