Как переписать URL-адрес в ASP.NET?
Я бы хотел, чтобы пользователи могли перейти http://www.website.com/users/smith вместо http://www.website.com/?user=smith
Как переписать URL-адрес в ASP.NET?
Я бы хотел, чтобы пользователи могли перейти http://www.website.com/users/smith вместо http://www.website.com/?user=smith
Попробуйте перезапустить URL-адрес управляемого фьюзера и обратного прокси-сервера:
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]
Я использовал подход httpmodule, и он работает хорошо. Это в основном то, что ManagedFusion делает для вас.
Microsoft теперь отправляет официальный модуль перезаписи URL-адресов для IIS: http://www.iis.net/download/urlrewrite
Он поддерживает большинство типов перезаписи, включая установку переменных сервера и подстановочных знаков.
Он также будет существовать во всех веб-экземплярах Azure из коробки.
Я использовал httpmodule для перезаписи url из www.urlrewriting.net с большим успехом (хотя я считаю гораздо более раннюю, более простую версию)
Если у вас очень мало фактических правил перезаписи, то сопоставления url, встроенные в .NET 2.0, вероятно, являются более легким вариантом, есть несколько писем из них в Интернете, 4guysfromrolla один кажется довольно исчерпывающим, но, поскольку вы можете видеть, что они не поддерживают сопоставления регулярных выражений, как таковые оказываются бесполезными в динамической среде (предполагая, что "кузнец" в вашем примере не является особый случай, тогда это было бы бесполезно)