Trailing slashes en Pylons Routes
Pregunta
¿Cuál es la mejor manera de hacer que las barras diagonales finales no importen en la última versión de Rutas (1.10)? Actualmente estoy usando lo claramente no SECO:
map.connect('/logs/', controller='logs', action='logs')
map.connect('/logs', controller='logs', action='logs')
Creo que activar la minimización sería suficiente, pero tengo la impresión de que estaba deshabilitado en las versiones más recientes de Rutas por una razón. Lamentablemente, la documentación no parece haberse puesto al día con el desarrollo de Rutas, por lo que no puedo encontrar ningún buen recurso para ir. ¿Alguna idea?
Solución
Hay dos formas posibles de resolver esto:
- Hazlo completamente en pilones .
- Agregue una regla htaccess para volver a escribir la barra inclinada al final .
Personalmente no me gusta la barra inclinada, porque si tienes un uri como:
Debería poder obtener los mismos datos en formato xml yendo a:
Otros consejos
El siguiente fragmento agregado como la última ruta funcionó para mí:
map.redirect('/*(url)/', '/{url}',
_redirect_code='301 Moved Permanently')
http://www.siafoo.net/snippet/275 tiene una pieza básica de middleware que elimina una barra diagonal final de las solicitudes. Una idea inteligente, y entendí mucho mejor el concepto de middleware en aplicaciones WSGI después de que me di cuenta de lo que esto hace.