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 кажется довольно исчерпывающим, но, как вы можете видеть, они этого не делают. Поддержка отображений регулярных выражений, как таковых, представляется довольно бесполезной в динамической среде (если предположить, что "кузнец" в вашем примере не является особым случаем, тогда это будет бесполезно)

Другие вопросы по тегам