Hace unos años, creé un sitio ASP.NET basado en una base de datos, que utiliza una sola página APSX para mostrar todas las páginas del sitio. Así que todas las direcciones URL del sitio están en el siguiente formato:Más cadena de consulta de inicio de sesión para el sitio ASP.NET
/main.aspx?page=Page+Title+One
/main.aspx?page=Another+Article+Title
/main.aspx?page=Third+Page
La página main.aspx obtiene los datos de cadena de consulta (Página + nombre + Uno, por ejemplo) y lo utiliza como una clave para sacar el artículo apropiado contenido de la base de datos del servidor SQL. El título real de la página se almacena en el archivo db con espacios en lugar de más (por ejemplo, "Título de página uno").
La mala decisión de ir con el signo + como separador de palabras en la cadena de consulta URL está causando muchos problemas con los motores de búsqueda últimamente (contenido duplicado, etc.), así que quiero solucionarlo, pero sin cambiar las URL .
Lo que quiero hacer es cuando el motor de búsqueda o visitante trata de visitar la URL equivocada faltan los signos + y tener espacios en blanco en su lugar, por ejemplo:
/main.aspx?page=Page Title One
que quiero hacer 301 redirección permanente a:
/main.aspx?page=Page+Title+One
para poder hacer esto tengo que comprobar si el valor de cadena de consulta tiene ventajas o espacios en blanco, sin embargo, cuando llegue el valor con Request.QueryString [ "página"], incluso si la cadena tiene quesry real más aún, sigo recibiendo cadenas con espacios en blanco "Título de la página uno".
El sitio funciona sobre IIS6/Win 2003.
¿Cómo puedo hacer esto?
Mis URL siempre han usado el signo más solo en lugar de espacios en blanco o el% 20, sin embargo, veo páginas en caché en Google con el siguiente aspecto 2: /main.aspx?page=KW1 KW2 y /main.aspx?page=KW1% 20KW2, que son incorrectos y causan problemas de contenido duplicado. Ahora quiero enviarlos a la URL correcta que es /main.aspx?page=KW1+KW2. –
Eso es más o menos lo que estaba explicando. No estoy seguro de lo que no estaba claro, así que he agregado código-ejemplo que con suerte explica. –
Gracias Jon, esto es exactamente lo que necesitaba :). ¿Cómo marco la pregunta como respondida? –