ASP.NET Переписывание URL-адреса
-
08-06-2019 - |
Вопрос
Как мне переписать URL в ASP.NET?
Я бы хотел, чтобы пользователи могли перейти http://www.website.com/users/smith вместо того, чтобы http://www.website.com/?user=smith
Решение
Попробуйте управляемый переписчик URL-адресов Fusion и обратный прокси-сервер:
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-адреса из www.urlrewriting.net с большим успехом (хотя я полагаю, что это гораздо более ранняя, более простая версия)
Если у вас очень мало реальных правил перезаписи, то сопоставления URL, встроенные в .NET 2.0, вероятно, являются более простым вариантом, в Интернете есть несколько таких описаний, 4 парня из роллы один из них кажется довольно исчерпывающим, но, как вы можете видеть, они не поддерживают сопоставления регулярных выражений, которые как таковые оказываются довольно бесполезными в динамической среде (предполагая, что "smith" в вашем примере не является частным случаем, тогда они были бы бесполезны)