URL перезаписи против маршрутизации - PullRequest
8 голосов
/ 27 мая 2009

Я создаю новый сайт для веб-форм asp.net и хотел бы украсить свои URL-адреса. Я хочу принять URL-адрес, подобный этому, "www.mysite.com/1-2,3" и превратить его в один. как это "www.mysite.com/page.aspx?a=1&b=2&c=3". Какой вариант лучше всего подходит для этой задачи - перезапись или маршрутизация IIS7 с точки зрения производительности и простоты обслуживания . Кстати, я планирую использовать общий доверительный хостинг IIS7, может быть 6.

Раньше я использовал PHP mod_rewrite, который меня очень порадовал, однако теперь весь этот сайт переводится на ASP.NET, и я не знаю, какой вариант выбрать.

PS - Я уже прочитал это и это , но не нашел его достаточно ясным для моей проблемы.

Ответы [ 4 ]

7 голосов
/ 29 мая 2009

Я бы привел веские аргументы в пользу использования маршрутизации. Он сохраняет логику разрешения ресурсов запросов в вашем приложении, поэтому очень легко добавлять зависимую от приложения логику, когда вам это необходимо, и устраняет необходимость поддерживать синхронизацию между вашим приложением и отдельным ресурсом конфигурации.

Маршрутизация прекрасно работает с традиционными веб-формами .

Перезапись URL часто (хотя и не всегда) является компенсацией за проблему, а не решением - серверное программное обеспечение и платформы по-прежнему построены на более старом понятии web pages , которые представляют физические ресурсы. Однако веб-приложения должны реагировать на запросы в виде команд ; но только относительно недавно современные веб-фреймворки стали изначально поддерживать эту модель. Маршрутизация является одним из таких событий.

2 голосов
/ 29 мая 2009

Я бы настоятельно рекомендовал использовать маршрутизацию , на самом деле он будет более интегрирован с веб-формами в следующей версии фреймворка. Перезапись URL - это скорее «взлом» из-за отсутствия маршрутизации. Если у вас уже есть проект, который вы хотите «сиять», то перезапись URL-адреса подойдет просто так.

Но, начиная с нуля, я бы определенно использовал маршрутизацию.

Маршрутизация скрывает структуру вашего приложения и заставляет вас больше думать о своих URL-адресах как о пути к контенту, который вы хотите показать, а не о пути к какой-либо странице с параметрами. И вам не нужно отслеживать две вещи при изменении материала, как при переписывании.

больше в этой статье

0 голосов
/ 29 мая 2009

Ну, это зависит от того, используете ли вы классический ASP.Net или новый MVC-фреймворк. У меня нет никакого опыта работы с платформой MVC, но, похоже, она поддерживает то, что вы ищете, прямо из коробки.

На классической стороне ASP.Net мы в настоящее время используем расширение IIS под названием ISAPI_Rewrite . Он ведет себя подобно Apache mod_Rewrite, и у них есть бесплатная версия, которую вы можете использовать, которая имеет большую часть платной версии ($ 100).

0 голосов
/ 27 мая 2009

IIS 5/6 использовал фильтрацию ISAPI, которая была в основном эквивалентом mod_rewrite для IIS. Я слышал, что переписывание URL IIS7 намного проще в управлении и настройке, чем ISAPI.

...