Pregunta

Una rápida.

Estoy usando la reescritura de mods y tengo la mayoría de los reemplazos en su lugar:

  • espacio vacío = _
  • & # 230; = ae
  • & # 198; = ae

y así sucesivamente.

¿Cuál sería el carácter de reemplazo natural para / ?

Gracias

¿Fue útil?

Solución

El subrayado se considera como un carácter de palabra, por lo que foo_bar es una palabra y no dos palabras. Pero el guión no se considera como un carácter de palabra, por lo que foo-bar son dos palabras.

Por lo tanto, debe usar el hypen - donde quiera separar dos partes y el guión bajo _ donde quiera conectar dos partes. En el caso de / que se usa para separar, preferiría el hypen - .

Otros consejos

  
      
  • & # 198; = ae
  •   

No necesariamente necesitas hacer eso. Puede poner caracteres Unicode que no sean ASCII en una URL como los bytes codificados en UTF-8. Entonces:

http://en.wikipedia.org/wiki/%C3%86

se muestra en los navegadores como:

http://en.wikipedia.org/wiki/Æ

y se pueden pegar en la barra de direcciones.

El espacio y la barra inclinada se pueden codificar como% 20 y% 2F. Sin embargo, esos formularios siguen apareciendo como porcentajes en el navegador, porque de lo contrario son caracteres reservados. Así que no se ven tan bonitas. Hay un problema adicional con% 2F en que los entornos de scripting tradicionales basados ??en CGI no pueden leerlos, y Apache los bloquea de forma deliberada para evitar que dichos scripts se confundan y dejen agujeros de seguridad.

Así que hago babosas de título eliminando por completo:

# % ' ( ) ? [ ] (U+00AD soft hyphen)

junto con cualquier carácter de control (U + 0000 a U + 001F excepto U + 00A0, y U + 007F a U + 00BF). Luego reemplazando cualquier ejecución de:

" $ & * + , / : ; < = > @ \ ^ (U+0020 space) (U+000A newline)

con un solo guión bajo. Esto elimina la necesidad de que aparezca una secuencia% xx en la URL. (Para los caracteres Unicode todavía habrá secuencias% xx, pero el usuario no las verá).

Si lo prefieres, puedes usar un guión en lugar de un guión bajo, lo que sea más bonito. Los motores de búsqueda deberían estar bien con cualquiera.

eta re comentar sobre otra respuesta:

  

Porque uso php para buscar el nombre en mi base de datos. Por lo tanto, cada carácter debe volver a convertirse al carácter original, de lo contrario no se encontrarán coincidencias.

En ese caso, no puedes hacer nada irrecuperable para los personajes, sin embargo. No puede cambiar & # 8216; & # 198; & # 8217; a & # 8216; ae & # 8217 ;, los espacios se deben codificar como & # 8216;% 20 & # 8217; y recorta como & # 8216;% 2F & # 8217 ;. Esto dará como resultado direcciones URL ligeramente feas y el & # 8216;% 2F & # 8217; le dará problemas de implementación en Apache e IIS.

Si necesita ingresar la clave únicamente en un título, deberá agregar una columna (ÚNICA indexada) en la bala procesada para buscar, como se sugirió anteriormente. Sin embargo, tenga en cuenta que luego no puede cambiar el nombre de un título de la página o corregirlo, ya que cambiará la barra, rompiendo la URL.

Un enfoque común para solucionar esto es incluir una ID numérica además de la barra (ver, por ejemplo, cómo lo hace SO). También puedes redireccionar 301 donde el nombre de la babosa es incorrecto para un SEO óptimo.

Usaré un guión: como Google separa palabras como esta para fines de SEO, o incluso un guión bajo _ ya que ambos son prefectos para la legibilidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top