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. URL.Acción incluye id al construir URL
- 4. Obtener ID de URL con jQuery
- 5. Obtener el #id de la URL actual
- 6. Asignación de NHibernate sin Id.
- 7. Validación de URL: acepta URL sin protocolos
- 8. URL sin "http | https"
- 9. Enrutamiento MVC sin controlador en la url
- 10. GWT. Establecer URL sin enviar
- 11. Tener URL sin extensión .aspx
- 12. Obtener url partes sin host
- 13. obtener la URL sin querystring
- 14. xpath encuentra nodos sin clase y sin id.
- 15. ¿Cómo acceder al elemento HTML sin ID?
- 16. Rails asociación polimórfica sin Tipo (ID único)
- 17. Sphinx sin utilizar un ID de auto_increment
- 18. Averigüe la pestaña de página URL desde la ID de página y la ID de aplicación
- 19. ¿Cómo redirigir con "www" URL sin URL "www" o viceversa?
- 20. Django: Imprimir url de vista sin hardcoding la url
- 21. RavenDb con ASP.NET MVC 3 - ¿Cómo generar URL con ID?
- 22. Agregar ID y título a URL slugs en ASP.NET MVC
- 23. Zend Framework Url View Helper agrega "id" de manera predeterminada
- 24. Encriptar/Codificar una ID en la cadena de URL
- 25. ASP .Net MVC enrutamiento: Url únicamente con ID de cadena
- 26. cómo obtener ID de url en cake php
- 27. mvc route actionlinklink url use name en lugar de id
- 28. cómo obtener el Id de la URL mientras usa node.js
- 29. ID, id o Id?
- 30. ¿Cómo presento un formulario sin ID de formulario y sin ID de envío, pero con un valor oculto conocido?
Bueno, tomará mucho más tiempo, pero aún es lo suficientemente rápido como para no importarle. –