Dando procedência ao post SEO Url em ASP.NET (como definir Url amigáveis para seu site), irei descrever como mais detalhes como configurar o componente UrlRewritingNet para uma aplicação ASP.NET.
Usarei um exemplo prático do meu próprio blog para ilustrar isso.
Bem, irei descrever passo-a-passo, e o primeiro passo que temos que fazer é a criação de uma aplicação ASP.NET.
Com o Visual Studio iniciado, siga a seguinte sequência abaixo:
Visual Studio -> File -> New -> WebSite -> ASP.NET Web Site
Assim você configura uma nova aplicação ASP.NET como mostra a figura abaixo.

Criando uma Aplicação ASP.NET
Uma vez criada a aplicação, agora você precisa fazer é adicionar uma referência para a DLL do UrlRewritingNet.
Para tanto, você precisa criar a pasta ASP.NET chamada "BIN" e depois localizar a DLL onde você efetuou o download e adiconá-la como referência.
As três imagens abaixo mostram esses procedimentos.
Criando a pasta bin...

Criando Pasta Bin
Adicionando a referência...

Adicionando Referência a DLL
Localizando nosso componente...

Adicionando Referência a DLL - Imagem 2
Depois que você clica em "OK" a DLL já está disponível e pronta para ser utilizada pela aplicação. Agora o precisamos definir são as configurações específicas para nossa aplicação em relação a esse componente.
Numa aplicação ASP.NET esses itens de configuração são normalmente definidos no arquivo de configuração chamado "web.config".
As duas imagens abaixo mostram como adicionar esse arquivo de maneira rápida.
Nessa primeira imagem abrimos a janela com as opções de itens que podem ser adicionados a aplicação.

Adicionando web.config
Agora, dentre os vários itens disponíveis, selecione o arquivo como mostra a figura abaixo.

Adicionando web.config - Imagem 2
Agora precisaremos configurar nosso componente em dois pontos do arquivo web.config.
O que iremos fazer é informar a nossa a aplicação o modo que ela deve proceder na requisição HTTP de forma que seja possível a interpretação da regra de rewrite que nós estamos criando.
O componente funciona como um "httpModule" e nos dois trechos de código que iremos definir, informaremos como esse "httpModule" deve ser processado.
Para maiores informações sobre esse tipo de componente, leia a documentação do ASP.NET. Uma informação inicial pode ser vista nesse post How To Create an ASP.NET HTTP Module Using Visual C# .NET.
Voltando ao nosso objetivo temos o código abaixo que é o primeiro trecho. Ele deve ser colocado logo abaixo da tag "configuration" do nosso arquivo web.config.

Arquivo web.config - configuração
Repare a tag "rewrites".
Dentro dessa tag defineremos nossas regras de rewrite para nossa aplicação.
Aqui não tem receita de bolo, pois a forma de definição depende da maneira que você queira tratar e/ou processar sua URL. Ou seja, depende da sua regra de negócio.
Neste exemplo como já disse mais acima, irei mostrar como defini a criação da página que você ler agora: a minha página de leitura de blog.
Na imagem ainda não temos nada, ou seja, não defini ainda quais regras seguiremos, irei informar mais adiante.
A imagem abaixo, mostra o segundo trecho de código que devemos adicionar.
É nesse ponto que informaremos a aplicação que ele deve processar, a cada requisição, os httpModules em questão. Em nosso caso, temos apenas um, o "UrlRewritingNet"

Configurando web.config - Imagem 2
Bem, o funcionamento do módulo é o seguinte:
Primeiro, você define sua lógica de negócio e cria sua URL e a idéia é que a URL seja amigável, ou seja, ela será utilizada por mecanismos de busca para indexação do seu site.
Depois que você define sua lógica, você precisa passar parâmetros informando a sua aplicação onde e como, de fato, as informações serão mostradas.
Se observar na URL, perceba que antes da URL amigável eu informo parâmetros que dirão ao código de programação como ele deve recuperar o conteúdo da página.
Normalmente passa-se o ID do registro de banco de dados e/ou outras configurações pertinentes.
Vamos mostrar nos códigos abaixo as variáveis HTTP GET que contém as informações necessárias para o meu blog.
O evento Page_Load chama um método...

Evento Page_Load
Esse método mostra as variáveis GET e seus respectivos valores...

Exibindo Parameters
Aqui apenas mostro o WebForm que contém o LABEL. Neste label será definido em sua propriedade Text o output do processamento do método...

Web Form
Se você nomeou o WebForm como "Default.aspx" e executá-lo, você não verá nenhum output na página. Se observar o código C#, o que ele faz nada mais é do que exibir CHAVES e VALORES da coleção GET
Façamos o seguinte...digite no browser a seguinte URL:
http://localhost/blog/pt-BR/37/seo-url-com-o-componente-urlrewritingnet.aspx
Evidentemente você não verá nada, dará o erro 404!
Agora o que precisamos fazer é definir é a expressão regular que fará o processamento na requisição HTTP.
Essa expressão ficará dentro da tag "rewrites" que definimos mais acima e que haviámos deixado em branco.
Defina a seguinte configuração entre a tag rewrites.
<add
name="ReadingBlogs"
virtualUrl="^http\://(.*)/blog/(.*)/([0-9]+)/(.*).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?Page=blog&CurrentCulture=$2&BlogId=$3&SeoUrl=$4"
rewrite="Domain"
ignoreCase="true"
/>
Dando procedência ao post SEO Url em ASP.NET (como definir Url amigáveis para seu site), irei descrever como mais detalhes como configurar o componente UrlRewritingNet para uma aplicação ASP.NET.
Usarei um exemplo prático do meu próprio blog para ilustrar isso.
Bem, irei descrever passo-a-passo, e o primeiro passo que temos que fazer é a criação de uma aplicação ASP.NET.
Com o Visual Studio iniciado, siga a seguinte sequência abaixo:
Visual Studio -> File -> New -> WebSite -> ASP.NET Web Site
Assim você configura uma nova aplicação ASP.NET como mostra a figura abaixo.

Criando uma Aplicação ASP.NET
Uma vez criada a aplicação, agora você precisa fazer é adicionar uma referência para a DLL do UrlRewritingNet.
Para tanto, você precisa criar a pasta ASP.NET chamada "BIN" e depois localizar a DLL onde você efetuou o download e adiconá-la como referência.
As três imagens abaixo mostram esses procedimentos.
Criando a pasta bin...

Criando Pasta Bin
Adicionando a referência...

Adicionando Referência a DLL
Localizando nosso componente...

Adicionando Referência a DLL - Imagem 2
Depois que você clica em "OK" a DLL já está disponível e pronta para ser utilizada pela aplicação. Agora o precisamos definir são as configurações específicas para nossa aplicação em relação a esse componente.
Numa aplicação ASP.NET esses itens de configuração são normalmente definidos no arquivo de configuração chamado "web.config".
As duas imagens abaixo mostram como adicionar esse arquivo de maneira rápida.
Nessa primeira imagem abrimos a janela com as opções de itens que podem ser adicionados a aplicação.

Adicionando web.config
Agora, dentre os vários itens disponíveis, selecione o arquivo como mostra a figura abaixo.

Adicionando web.config - Imagem 2
Agora precisaremos configurar nosso componente em dois pontos do arquivo web.config.
O que iremos fazer é informar a nossa a aplicação o modo que ela deve proceder na requisição HTTP de forma que seja possível a interpretação da regra de rewrite que nós estamos criando.
O componente funciona como um "httpModule" e nos dois trechos de código que iremos definir, informaremos como esse "httpModule" deve ser processado.
Para maiores informações sobre esse tipo de componente, leia a documentação do ASP.NET. Uma informação inicial pode ser vista nesse post How To Create an ASP.NET HTTP Module Using Visual C# .NET.
Voltando ao nosso objetivo temos o código abaixo que é o primeiro trecho. Ele deve ser colocado logo abaixo da tag "configuration" do nosso arquivo web.config.

Arquivo web.config - configuração
Repare a tag "rewrites".
Dentro dessa tag defineremos nossas regras de rewrite para nossa aplicação.
Aqui não tem receita de bolo, pois a forma de definição depende da maneira que você queira tratar e/ou processar sua URL. Ou seja, depende da sua regra de negócio.
Neste exemplo como já disse mais acima, irei mostrar como defini a criação da página que você ler agora: a minha página de leitura de blog.
Na imagem ainda não temos nada, ou seja, não defini ainda quais regras seguiremos, irei informar mais adiante.
A imagem abaixo, mostra o segundo trecho de código que devemos adicionar.
É nesse ponto que informaremos a aplicação que ele deve processar, a cada requisição, os httpModules em questão. Em nosso caso, temos apenas um, o "UrlRewritingNet"

Configurando web.config - Imagem 2
Bem, o funcionamento do módulo é o seguinte:
Primeiro, você define sua lógica de negócio e cria sua URL e a idéia é que a URL seja amigável, ou seja, ela será utilizada por mecanismos de busca para indexação do seu site.
Depois que você define sua lógica, você precisa passar parâmetros informando a sua aplicação onde e como, de fato, as informações serão mostradas.
Se observar na URL, perceba que antes da URL amigável eu informo parâmetros que dirão ao código de programação como ele deve recuperar o conteúdo da página.
Normalmente passa-se o ID do registro de banco de dados e/ou outras configurações pertinentes.
Vamos mostrar nos códigos abaixo as variáveis HTTP GET que contém as informações necessárias para o meu blog.
O evento Page_Load chama um método...

Evento Page_Load
Esse método mostra as variáveis GET e seus respectivos valores...

Exibindo Parameters
Aqui apenas mostro o WebForm que contém o LABEL. Neste label será definido em sua propriedade Text o output do processamento do método...

Web Form
Se você nomeou o WebForm como "Default.aspx" e executá-lo, você não verá nenhum output na página. Se observar o código C#, o que ele faz nada mais é do que exibir CHAVES e VALORES da coleção GET
Façamos o seguinte...digite no browser a seguinte URL:
http://localhost/blog/pt-BR/37/seo-url-com-o-componente-urlrewritingnet.aspx
Evidentemente você não verá nada, dará o erro 404!
Agora o que precisamos fazer é definir é a expressão regular que fará o processamento na requisição HTTP.
Essa expressão ficará dentro da tag "rewrites" que definimos mais acima e que haviámos deixado em branco.
Defina a seguinte configuração entre a tag rewrites.
<add
name="ReadingBlogs"
virtualUrl="^http\://(.*)/blog/(.*)/([0-9]+)/(.*).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?Page=blog&CurrentCulture=$2&BlogId=$3&SeoUrl=$4"
rewrite="Domain"
ignoreCase="true"
/>
Se você observar o item destinationUrl entenderá o funcionamento.
Perceba que ele tem algumas variávies.
- Page: A página do site, o local que estamos no site;
- CurrentCulture: o idioma, servirá para configurar o site de acordo com o idioma;
- BlogId: o ID do blog em questão, servirá para localização em Banco de Dados;
- SeoUrl: a URL amigável;
No ítem "virtualUrl", você terá a expressão regular que interpreta essa url.
Essas configurações dependerão da lógica do seu site e para maiores esclarecimentos estude as expressões regulares. Elas são genéricas e não tem relação ao componente. Se você já tem experiência, não sentirá dificuldades.
Veja, resumidamente o funcionamento:
- O componente interpreta a página de acordo com a regra definida em "virtualUrl";
- O componente mapeia a URL e define os valores das variáveis GET e passa para que a página definida em "destinationUrl" ("Default.aspx") a processe.
- A página Default.aspx processa a requisição como se fosse uma requisição GET manual;
Depois de configurado o resultado é o seguinte:

Resultado Final