Veo URL a menudo (reescritas) sin ID, como en algunas instalaciones de wordpress. ¿Cuál es la mejor manera de lograr esto? Ejemplo: site.com/product/some-product-name/ ¿Quizás para mantener la matriz de nombres de página e ID en caché, para evitar la consulta de DB en cada solicitud de página? Cómo evitar conflictos, y ¿cuáles son otros problemas sobre el uso de URL sin ID?URL sin ID
Respuesta
El uso de una ID presenta el mismo acertijo, en realidad, solo está buscando un valor diferente en su base de datos. La parte "nombre de algunos productos" de su URL anterior también es algo único. Algunas personas los llaman babosas (Wordpress, también enlaces permanentes). Entonces, en lugar de consultar la base de datos de una fila que tiene la ID particular, está consultando la base de datos para una fila que tiene una babosa particular. No necesita saber la ID para recuperar el registro.
Siempre que los nombres de los productos sean únicos, no debería ser un problema. No llevará más tiempo (al menos no significativo) buscar un producto por nombre único que ID numérico, siempre que la columna esté indexada.
Wordpress tiene un campo en la tabla wp_posts para el slug. Cuando creas la publicación, crea un slug a partir del título de la publicación (si así es como lo tienes configurado), reemplazando espacios con guiones (o creo que puedes configurarlo para subrayar). También elimina los apóstrofes, comas o cualquier otra cosa. Creo que también limita la longitud total de la babosa también.
Por lo tanto, en resumen, no está decodificando dinámicamente la URL en el título de la publicación; hay un campo en la tabla que coincide directamente con la versión URL del nombre de la publicación.
Como usted puede o no puede saber, las URL se vuelven a escribir con el módulo de mod_rewrite de Apache. Como se mencionó aquí, Wordpress está, en segundo plano, asignando un slug después de desinfectar el título o el nombre del mensaje.
Pero, para responder a su pregunta, lo que está describiendo es la función "Pretty Permalinks" de Wordpress y puede obtener más información al respecto en el número Wordpress codex. Las versiones más nuevas de Wordpress hacen la reescritura interna (no .htaccess editin, wp_rewrite en su lugar). Por eso verá el mismo conjunto de reglas para cualquier estructura de enlace permanente.
Sin embargo, si realiza alguna búsqueda, puede encontrar las antiguas reglas de reescritura. Por ejemplo:
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&day=$3 [QSA,L]
tomará una URL como /2008/01/01/
y dirigirla a /index.php?year=2008&monthnum=01&day=01
(y cargar una categoría de fecha).
Pero, como se mencionó, existe una página como product-name
única porque Wordpress ya desinfectado el título de la entrada y se almacena como un campo en la base de datos.
- 1. Hibernar/persistencia sin @Id
- 2. django {% url%} etiqueta sin parámetros
- 3. Asignación de NHibernate sin Id.
- 4. Obtener ID de URL con jQuery
- 5. URL.Acción incluye id al construir URL
- 6. Obtener el #id de la URL actual
- 7. Validación de URL: acepta URL sin protocolos
- 8. URL sin "http | https"
- 9. Enrutamiento MVC sin controlador en la url
- 10. Obteniendo ID de video de YouTube en una URL e ingresando ID de video seleccionado en una URL
- 11. xpath encuentra nodos sin clase y sin id.
- 12. obtener la URL sin querystring
- 13. Tener URL sin extensión .aspx
- 14. Obtener url partes sin host
- 15. GWT. Establecer URL sin enviar
- 16. Regex: Stripping ID del video de Youtube desde la URL
- 17. Rails asociación polimórfica sin Tipo (ID único)
- 18. Sphinx sin utilizar un ID de auto_increment
- 19. ¿Cómo acceder al elemento HTML sin ID?
- 20. usuarios visitantes ID de Facebook sin autorización?
- 21. Averigüe la pestaña de página URL desde la ID de página y la ID de aplicación
- 22. Django: Imprimir url de vista sin hardcoding la url
- 23. ¿Cómo redirigir con "www" URL sin URL "www" o viceversa?
- 24. Facebook Graph API: ¿obtener ID para una URL?
- 25. cómo obtener ID de url en cake php
- 26. RavenDb con ASP.NET MVC 3 - ¿Cómo generar URL con ID?
- 27. mvc route actionlinklink url use name en lugar de id
- 28. Encriptar/Codificar una ID en la cadena de URL
- 29. Agregar ID y título a URL slugs en ASP.NET MVC
- 30. ASP .Net MVC enrutamiento: Url únicamente con ID de cadena
Bueno, tomará mucho más tiempo, pero aún es lo suficientemente rápido como para no importarle. –