ASP.NET URL перезаписи
Как переписать URL в ASP.NET?
Я бы хотел, чтобы пользователи могли перейти на страницу http://www.website.com/users/smith вместо http://www.website.com/?user=smith
3 ответа
Попробуйте Managed Fusion Url Rewriter и обратный прокси-сервер:
http://urlrewriter.codeplex.com/
Правило для переписывания это будет:
# clean up old rules and forward to new URL
RewriteRule ^/?user=(.*) /users/$1 [NC,R=301]
# rewrite the rule internally
RewriteRule ^/users/(.*) /?user=$1 [NC,L]
Microsoft теперь поставляет официальный модуль перезаписи URL для IIS: http://www.iis.net/download/urlrewrite
Он поддерживает большинство типов перезаписи, включая настройку серверных переменных и подстановочных знаков.
Он также будет существовать во всех веб-экземплярах Azure из коробки.
Я использовал httpmodule для перезаписи URL с http://www.urlrewriting.net/ с большим успехом (хотя я считаю, что гораздо более ранняя, более простая версия)
Если у вас очень мало фактических правил переписывания, тогда преобразования URL, встроенные в.NET 2.0, вероятно, более простой вариант, их можно найти в Интернете несколько раз, 4guysfromrolla кажется довольно исчерпывающим, но, как вы можете видеть, они этого не делают. Поддержка отображений регулярных выражений, как таковых, представляется довольно бесполезной в динамической среде (если предположить, что "кузнец" в вашем примере не является особым случаем, тогда это будет бесполезно)