ASP.NET URL Переписывая

голоса
30

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

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

Задан 05/08/2008 в 14:14
источник пользователем
На других языках...                            


4 ответов

голоса
23

Попробуйте 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]
Ответил 05/08/2008 d 14:18
источник пользователем

голоса
20

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

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

Ответил 05/08/2008 d 14:28
источник пользователем

голоса
5

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

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

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

Ответил 01/10/2010 d 12:52
источник пользователем

голоса
4

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

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

Ответил 11/08/2008 d 14:44
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more