2009-03-03 24 views
5

Mencionado stackoverflow sólo como un ejemplo, pero si se mira por encima de la dirección URL para pedir esPáginas web ASP.NET sin nombres, como stackoverflow?

http://stackoverflow.com/questions/ask 

lo que significa/ask es un subdirectorio, pero también hacer esto para las páginas de preguntas específicas. ¿Cómo se codifica esto en .NET?

No es una pregunta de código tanto como una técnica. Sé que esto es genial para SEO, pero ¿cómo se crea un sitio para que cada "página" sea su propio directorio? Dinamicamente.

¿Tiene una plantilla o un redireccionamiento oculto ???

¿Cómo? :)

Respuesta

10

Se denomina reescritura de URL:

Url Rewriting with ASP.NET

MSDN: URL Rewriting in ASP.NET

EDITAR: Como @Justice señala, Stackoverflow utiliza Routing.

+0

Si va a downvote, ¿qué le parece dejar un comentario de por qué? –

+0

He votado desde que eres el único con la respuesta correcta –

+0

Te he votado también. ¿Qué pasa con esas estúpidas respuestas acerca de con qué SO se construyó? Su respuesta responde directamente las preguntas. – mezoid

1

desbordamiento de pila utiliza ASP.net MVC

MVC utiliza la URL + cadena de consulta para determinar el contenido, por lo que no es como una URL que apunta a una página específica, sino más bien como un camino jerárquico a las propiedades de algunos datos a mostrarse

EG https://stackoverflow.com/users/[Put ID de usuario aquí]

solicita al sitio web que muestre un USUARIO con una ID especificada en la ruta (en este caso, el nombre de usuario probablemente sea solo por patadas) en lugar de una página específica creada solo para ese usuario.

+0

El póster no preguntaba en qué estaba escrito SO. –

5

desbordamiento de pila fue construido usando ASP.NET MVC que utiliza una técnica llamada de enrutamiento, consulte:

What Was Stack Overflow Built With?

y Routing

+0

-1 Te perdiste por completo el objetivo de la pregunta. Él no preguntó cómo se construyó SO ... de hecho se establece específicamente que SO solo se usa como ejemplo. Su pregunta es cómo reescribir la url para que parezca un directorio ... y la única respuesta correcta hasta ahora es de Mitch. – mezoid

+0

OK, mi respuesta no es tan completa como la de Mitch y no menciona específicamente Enrutamiento según Justicia; sin embargo, sigue respondiendo la pregunta sobre cómo (al menos una forma) "crear un sitio para que cada" página "sea su propio directorio " – mundeep

6

Stackoverflow utiliza algo llamado enrutamiento, que viene con .NET 3.5 SP1 . El enrutamiento es una característica popular de varios frameworks MVC, como ASP.NET MVC, Ruby on Rails y varios frameworks de Python y PHP.

1

He visto esto realizado simplemente creando una carpeta para cada página web y luego teniendo cada carpeta contiene un documento Default.aspx (Asumiendo Default.aspx se configura como un documento predeterminado en IIS, que es por defecto). Luego puede navegar a cualquier carpeta en el sitio sin especificar la página (Default.aspx).

Para la parte dinámica, he trabajado con sistemas CMS que lo hacen de esta manera y la página Default.aspx simplemente hereda de alguna plantilla maestra y el sistema CMS utiliza el enginge de representación de ASP.NET para completar dinámicamente la página web.

Usar carpetas puede ser un poco pesado con la estructura del sitio, pero es una manera fácil de eliminar los nombres de página del navegador.

Así es como estructurar mi sitio web y evitar tener que usar nombres de página ...por ejemplo, http://www.innovaapps.net/Blog simplemente abre la página default.aspx sin tener que especificar el nombre de la página.

Cuestiones relacionadas