Подтвердить что ты не робот

Перенаправление URL-адреса ASP.NET

Как переписать URL-адрес в ASP.NET?

Я бы хотел, чтобы пользователи могли перейти http://www.website.com/users/smith вместо http://www.website.com/?user=smith

4b9b3361

Ответ 1

Попробуйте перезапустить 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]

Ответ 2

Скотт Гатри рассказывает, как сделать это изначально в .Net довольно широко здесь .

Я использовал подход httpmodule, и он работает хорошо. Это в основном то, что ManagedFusion делает для вас.

Ответ 3

Microsoft теперь отправляет официальный модуль перезаписи URL-адресов для IIS: http://www.iis.net/download/urlrewrite

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

Он также будет существовать во всех веб-экземплярах Azure из коробки.

Ответ 4

Я использовал httpmodule для перезаписи url из www.urlrewriting.net с большим успехом (хотя я считаю гораздо более раннюю, более простую версию)

Если у вас очень мало фактических правил перезаписи, то сопоставления url, встроенные в .NET 2.0, вероятно, являются более легким вариантом, есть несколько писем из них в Интернете, 4guysfromrolla один кажется довольно исчерпывающим, но, поскольку вы можете видеть, что они не поддерживают сопоставления регулярных выражений, как таковые оказываются бесполезными в динамической среде (предполагая, что "кузнец" в вашем примере не является особый случай, тогда это было бы бесполезно)