Вопрос

Как мне переписать 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" в вашем примере не является частным случаем, тогда они были бы бесполезны)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top