Decir que tengo la página:
http://ww.xyz.com/Product.aspx?CategoryId=1¿Cómo se eliminan los caracteres no válidos al crear una URL amigable (es decir, cómo se crea una babosa)?
Si el nombre de CategoryId = 1 es "Perros" Me gustaría convertir la URL en algo como esto:
http://ww.xyz.com/Products/Dogs
El problema es si el El nombre de categoría contiene caracteres extraños (o inválidos para una url). Si el nombre de CategoryId = 2 es "Göra äldre", ¿cuál debería ser la nueva URL?
Lógicamente que debe ser:
http://ww.xyz.com/Products/Göra äldre
pero no va a funcionar. En primer lugar, por el espacio (que puedo reemplazar fácilmente por un guión, por ejemplo), pero ¿qué pasa con los personajes extranjeros? En Asp.net que podría utilizar la función URLEncode lo que daría algo como esto:
http://ww.xyz.com/Products/G%c3%b6ra+%c3%a4ldre
pero no puedo decir que es mejor que la URL original (http://ww.xyz.com/Product.aspx?CategoryId=2)
Tu lugar ideal para generar éste pero ¿cómo puedo hacer esto de forma automática (es decir, la conversión de caracteres extranjeros a los caracteres de URL 'seguros'):
http://ww.xyz.com/Products/Gora-aldre
Escribí un método enorme lleno de declaraciones if usando la clase char hasta que encontré esto. Buen material. –
Creo que ISAPI hace lo mismo, pero quiero más control sobre mis URL. Esta es una buena solución. –
Gracias por la función.Tuve que agregar otra pieza al final para reemplazar dos o más guiones con un solo guión. str = System.Text.RegularExpressions.Regex.Replace (str, @ "\ - +", "-"); // convertir varios guiones en un guión –