2010-03-04 8 views
5

Estoy construyendo un sitio que tiene productos, cada uno de los cuales pertenece a una o más categorías, que se pueden anidar dentro de las categorías principales. Me gustaría tener las URL de SEO con niños, que se parecen a esto:¿Es seguro depender de una barra inclinada en una URL para el enrutamiento?

  1. mysite.com/category/
  2. mysite.com/category/product
  3. mysite.com/category/sub-category/
  4. mysite.com/category/sub-category/product

Mi pregunta es: ¿es seguro que depender de la presencia de una barra al final de diferenciar entre los casos 2 y 3? ¿Siempre puedo suponer que el usuario quiere un índice de categoría cuando se detecta una barra inclinada, frente a la página de un producto específico sin barra posterior?

No me preocupa implementar este esquema de URI; Ya he hecho tanto con PHP y mod_rewrite. Simplemente me pregunto si alguien sabe de alguna objeción a este tipo de enrutamiento de URL. ¿Existen problemas conocidos con los navegadores eliminando/agregando URL finales de la barra de direcciones, o con los motores de búsqueda que se arrastran por dicho sitio? ¿Algún problema de SEO u otro obstáculo con el que me pueda encontrar?

+2

¿Por qué no hace que sus URL sean inequívocas al imponer una de las anotaciones (con o sin barra al final)? – Gumbo

+0

@Gumbo La ambigüedad surge porque no puedo decir si '/ category/abc' es una solicitud para una categoría o producto. Pensé que podría resolver esto al diferenciar las solicitudes de productos y categorías a través de la barra al final. – meagar

Respuesta

5

Además de las otras ideas de trampas que mencionas, el usuario puede cambiar la URL (escribiendo el producto o categoría) y agregar/eliminar el final "/".

para resolver su problema, por qué no tener una sub-categoría especial " todo" y en lugar de "mysite.com/category/product" tener "todo mysite.com/category/ /producto"?

+0

Cierto, no había considerado eso. Sin embargo, los usuarios rara vez escribirán en estas URL; el público objetivo es extremadamente no experto en tecnología. Todavía estoy principalmente preocupado con SEO y la funcionalidad del navegador. También estoy considerando la subcategoría de marcador de posición, aunque había planeado usar 'productos': 'mysite.com/category/products/product_name'. – meagar

1

Nunca asuma que el usuario hará nada PERO el peor de los casos en cualquier URL relacionado.

a menos que esté preparado para hacer redirecciones en su código, suponga que tiene las mismas posibilidades de que un URI termine en barra diagonal o ninguna barra diagonal. La única forma de asegurarse de que su código sea sólido y, por lo tanto, no tendrá que preocuparse por este tipo de problema.

5

Para mí, parece muy antinatural que http://product/ y http://product representen dos recursos completamente diferentes. Es confuso y hace que sus URL sean menos hackable, ya que es difícil saber cuándo debe estar presente una barra inclinada.

Además, en RFC 3986, identificador uniforme de recursos (URI): Sintaxis Genérica, hay una nota en Normalización basadas en el protocolo en el capítulo 6.2.4, que habla de esta situación particular con respecto a la no-humana los visitantes de su sitio, como los motores de búsqueda y arañas web:

un esfuerzo sustancial para reducir la incidencia de falsos negativos es suele ser rentable para las arañas web. Por lo tanto, implementan técnicas aún más agresivas en la comparación de URI.Por ejemplo, si observan que un URI como

http://example.com/data

redirige a un URI que sólo difieren en la barra final

http://example.com/data/

que es probable que considerar los dos como equivalente en el futuro. (...)

3

Una forma de diferenciar sería asegurarse de que las páginas del producto tengan una extensión, pero las páginas de categoría o subcategoría no. Es decir:

  1. mysite.com/category/
  2. mysite.com/category/product.html
  3. mysite.com/category/sub-category/
  4. mysite.com/category/sub -category/product.html

Eso lo hace inequívoco.

0

Esta pregunta supone que la adición de una barra al final de una URL crea una URL que hace referencia a un recursodiferente. Esto está mal; la semántica de las URL es que ambas se refieren al mismo recurso. La presencia de una barra inclinada en una base URL simplemente changes cómo se interpretan las URL relativas utilizando esa URL base.

+0

¿Puedes citar alguna referencia para esto? – meagar

+1

@meagar Consulte http://en.m.wikipedia.org/wiki/URL_normalization la adición de una barra final * no debe * importar (pero desafortunadamente no se garantiza que lo haga, como lo demuestra esta pregunta: un servidor * podría * tratarlos de manera diferente). – Raedwald

+0

Tenga en cuenta que estoy de acuerdo, solo quería algo más concreto. Conozco al menos un servicio web principal (en realidad, el * más * importante) basado en Rieles, que realiza una ruta diferente según el '/' posterior: Basecamp. Agregue un '/' al final y su URL de repente 404. – meagar

Cuestiones relacionadas