Если вы используете .net 3.5 или менее, вы можете использовать эти
- http://urlrewriting.net
- http://urlrewriter.net
Я использую второй, во всех моих проектах, сделанных в .net 3.5
если вы используете .net 4.0, вы можете сделать это
- маршрутизация URL (я думаю, что она не поддерживает перезапись поддоменов)
- URL Rewrite 2.0 (работает только с IIS 7)
UPDATE
Добавьте эти строки под тегом appSettings
<rewriter configSource="URLRewriter.config"/>
Затем создайте отдельный файл с именем URLRewriter.config
И в этом вы можете написать так (добавьте остановку обработки для файлов, которые не будут перезаписаны, т.е. изображения и js и т. Д.)
<rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js|\.flv|\.eot|\.svg|\.ttf|\.woff|\.txt|\.doc|\.docx|\.pdf|\.xls|\.xlsx|\.xml)(\?.+)?)$" to="$1" processing="stop" />
<rewrite url="~/article/([^/.]+)" to="~/articledetail.aspx?articlename=$1" />
Тогда вы получите название статьи в строке запроса, как это
string articlename = Request.QueryString["articlename"];
И в меню или в другом месте сайта, где вы хотите разместить ссылку на статью, вы можете добавить AppSettings, чтобы позже, если вы хотите изменить шаблон URL, вы могли легко изменить его только из конфигов,
<add key ="ArticalDetailsURL" value="/article/{0}" />
Затем на странице вы можете сделать это
string articleName = "TestArticle";
lnkMenuLink.NavigateUrl = string.Format(ConfigurationSettings.AppSettings["ArticalDetailsURL"], articleName);
Спасибо и всего наилучшего,
Harsh Baid