2012-06-18 6 views
9

& is a reserved character in html por lo tanto en todas partes tengo url apuntando a alguna ruta con querystring puse & amp; en lugar de & para obtener HTML válido.prácticas en el manejo de solicitudes de robots malos url's que contienen ampersand como "&" en lugar de "&"

Hay un muchos rastreadores diferentes que se coloca sobre el sitio web y el acceso de esta URL, pero que no utilizan métodos html decodificación para obtener los valores de URL correctas por lo que hacen peticiones a mi sitio web con:

mywebsite.com/?p1=v1&p2=v2 

en lugar de

mywebsite.com/?p1=v1&p2=v2 

en este momento estoy respondiendo con la página de error como los robots que hace que este peticiones no son de interés para mí.

Pero mi pregunta es, ¿cuáles son las mejores prácticas para manejar este tipo de solicitudes?

¿Sabes si hay algún uso para ayudar a manejar este tipo de solicitudes? (por ejemplo, ¿hay rastreadores o navegadores populares que no conviertan correctamente esta url?)

+1

¿Es esto en atributos? No hagas eso. – Ryan

+9

Puede configurar su servidor web para arreglarlo, pero parece que un rastreador que no está averiguando por sí mismo probablemente no valga la pena – Cfreak

+0

De hecho, W3C recomienda utilizar punto y coma (';') en lugar de '& '. Pero admitir ';' generalmente requiere un cambio de configuración en el servidor. Es probable que aún tenga que admitir '&' al redireccionar a ';', ya que al enviar un formulario HTML con 'type = GET', el navegador lo envía a una' & 'URL. [link] http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#hB.2.2 –

Respuesta

1

Creo que puede esperar que cualquier rastreador principal pueda manejar URL válidas con escapes. Entonces no me preocuparé por el resto.

Si realmente te gusta, entonces quizás quieras agregar reglas de reescritura a tu Apache o lo que sea que uses. Pero esto puede conducir a otros problemas cuando una URL realmente contiene la secuencia charsequence & y ha sido reemplazada por & por su regla de reescritura por error.

En mi opinión, es mejor dejar esto intacto. No es tu culpa y cuando realmente no te importa este rastreador, ¿y qué? :)

-3

Sí & es un personaje reservado pero no lo vas a poner en los enlaces del sitio web.

correcta

<a href="mywebsite.com/?p1=v1&p2=v2">mywebsite.com/?p1=v1&amp;p2=v2</a> 

incorrecta

<a href="mywebsite.com/?p1=v1&amp;p2=v2">mywebsite.com/?p1=v1&amp;p2=v2</a> 
+0

No estoy seguro de cuál es su punto, pero '& p2 = v2' es una entidad HTML no válida. No confundas escapar con los contenidos reales. –

+0

Directamente desde http://validator.w3.org en su versión correcta: 'Error: & no inició una referencia de caracteres. (y probablemente debería haberse escapado como &.) mywebsite.com/?p1=v1&p2=v2 ' – Dorin

+0

De hecho, su versión correcta es incorrecta y su versión incorrecta es correcta. Suena contradictorio, ¡pero es verdad! :) –

Cuestiones relacionadas