«Перезапись URL» / Маршрутизация с использованием .net 3.0 и IIS 6.0 - PullRequest
2 голосов
/ 17 декабря 2008

Интересно, каков наилучший подход для ситуации, когда я хочу, чтобы пользователь набрал

http://myserver/something/20

и получите перенаправление (301 или 302) на

http://someotherserver/applications/something/modules/default.aspx?id=20

Для .net 3.5 и IIS 7 я нашел некоторые решения, но, к сожалению, я застрял с .net 3.0 и IIS 6.0 в Windows 2003, и я не хочу устанавливать что-либо на сервер, если это возможно. Я могу изменить настройки для Виртуального каталога, и, если потребуется, для всего сайта.

HTTPModules и web.config являются только ASP.net. Если я не совсем ошибаюсь, следовательно, это не поможет, так как / 20 не отправляется на ASP.net по умолчанию?

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

Ответы [ 4 ]

3 голосов
/ 17 декабря 2008

Я видел единственный способ сделать это без помещения перенаправлений 301 непосредственно в IIS Manager, это использовать сопоставление с подстановочными знаками

Ссылка

1 голос
/ 30 мая 2009
  1. В IIS щелкните правой кнопкой мыши на Виртуальный каталог , выберите Свойства .
  2. На вкладке Каталог нажмите кнопку Конфигурация ... .
  3. На вкладке Сопоставления , в Сопоставление приложений с подстановочными знаками (порядок реализации): нажмите кнопку Вставить ... .
  4. Найдите и выберите C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll , оставьте флажок Проверять, что файл существует без проверки.
  5. Переместиться вверх aspnet_isapi.dll в начало списка.
  6. Нажмите ОК, ОК и попробуйте. Попробуйте утилизировать пул приложений, если он не работает.

У нас была ситуация, когда .Net Routing работала на наших компьютерах для разработки, но не на тестовом и рабочем сервере с IIS 6 и Windows 2003. Это решило нашу проблему.

1 голос
/ 17 декабря 2008

Сопоставьте расширение .* с той же DLL, что и .aspx в сопоставлениях файлов виртуального каталога в конфигурации приложения. Затем в разделе http.Handlers web.config сопоставьте URL-адрес с типом.

1 голос
/ 17 декабря 2008

Вы можете заручиться поддержкой ASP.

Создайте файл 404.asp в папке что-то с содержимым: -

<%

Dim id : id = CLng(Mid(Request.QueryString, InStrRev(Request.QueryString, "/")+1))
Response.Redirect "http://someotherserver/applications/something/modules/default.aspx?   id=" & id

%>

В пользовательских ошибках папки что-то в диспетчере IIS настраиваются URL-адреса и /something/404.asp

.

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

404; http://myserver:80/something/20

Редактировать: Не могли бы вы использовать пользовательскую страницу ошибки 404.ashx, а затем использовать более знакомый код .NET.

...