Le modèle de regex ne supporte pas le symbole #

J’utilise l’expression rationnelle dans les configurations Nginx pour capturer les URL des fichiers, mais si l’URL du fichier contient le symbole #, le modèle regex ne le capturera pas.

Voici la partie de nginx config.

location ~ ^/p/(?[\w\-=]+,\d+),(?[^/]+)(?/.*)$ { } 

Un exemple d’URL de fichier à l’origine de l’erreur car elle contient le symbole #.

 http://mydomain.com/p/KPFHELPFAQrc3rUPIUS7Cg,1401267921,1/4962/Ubuntu#6 (DVD-ISO)/Ubuntu-12-04.iso 

Vous devez changer # en %23 dans l’URL:

 http://mydomain.com/p/KPFHELPFAQrc3rUPIUS7Cg,1401267921,1/4962/Ubuntu%236 (DVD-ISO)/Ubuntu-12-04.iso 

Voici la liste complète des caractères d’échappement d’URL