He configurado mi aplicación coldfusion para tener URL dinámicas en la página, como
www.musicExplained/index.cfm/artist/:VariableName
Sin embargo, los nombres de mis variables a veces contienen barras, como
www.musicExplained/index.cfm/artist/GZA/Genius
Esto está causando un problema, porque mi aplicación supone que la barra inclinada en el nombre de la variable representa una sección diferente del sitio web, los álbumes de artistas. Entonces la URL fallará.
Me pregunto si hay alguna forma de evitar que esto suceda. ¿Necesito usar una función que reemplace las barras en los nombres de las variables con otro carácter?
Respuestas:
Necesitas escapar de las barras como
%2F
.fuente
/
y rompe la ruta. :(encodeURIComponent
ydecodeURIComponent
para este propósito.Puede reemplazar fácilmente las barras diagonales
/
con algo como un guión bajo_
, como los que usa Wikipedia para los espacios. Reemplazar caracteres especiales con guiones bajos, etc., es una práctica común.fuente
UNderscores ARE BAD FOR SEO
comentario. Los guiones bajos se interpretan como guiones bajos por Google, los guiones / guiones se interpretan como espacios. ¿Por qué? Codificadores, muchos codificadores usan Google (incluido el propio Google desde los primeros días), si trataran los guiones bajos como espacios, ya no podría encontrarfoo_bar
(probablemente una clase de algún tipo) dentro de los resultados de búsqueda. Bla, bla ... En conclusión: los guiones bajos no son malos para el SEO si comprendes cómo funciona realmente el motor de búsqueda para el que estás "optimizando".Debe escapar de ellos, pero no solo los reemplace
%2F
manualmente. Puede utilizarURLEncoder
para esto.P.ej
URLEncoder.encode(url, "UTF-8")
Entonces puedes decir
fuente
encodeURIComponent
, w3schools.com/jsref/jsref_encodeuricomponent.aspConsulte esta página de w3schools sobre "Referencia de codificación de URL HTML": https://www.w3schools.com/tags/ref_urlencode.asp
porque / te escaparías con% 2F
fuente