J’ai l’intention de faire une redirection d’URL du formulaire:
de:
domain.com/A
dans
domain.com/someResourse/id/10
dans cette redirection, la base de l’identifiant passe de 16 à 10 .
Je me demande si cela est possible en utilisant .htaccess
Vous pouvez utiliser RewriteMap avec le mappage de programme externe (prg :). Ceci est une utilisation assez avancée de mod-rewrite et même de RewriteMap.
RewriteLock /var/lock/rewritemaplock.lock RewriteMap base16to10 prg:/somewher/modrewritemapbase16to10.pl RewriteRule - ${base16to10:%{REQUEST_URI}}
Et pour le script perl (ou tout autre langage), non testé
#!/usr/bin/perl $| = 1; # Turn off I/O buffering while ($uri=) { sprintf("/someResourse/id/%d",hex($uri)); }
Vous devrez peut-être tester et étendre le programme, au moins vous devez renvoyer la chaîne “NULL” en cas d’erreur. Vous devrez peut-être aussi append du RewriteCond avant d’appeler cette rewriteRule si une autre URL ne doit pas être convertie.
Vous pouvez utiliser d’autres langages pour le graveur de base 16 à 10, voici un exemple en PHP .
Il n’est pas possible de faire des calculs dans .htaccess. mais vous pouvez envoyer la demande à un script PHP (ou un autre langage) où vous faites le calcul, puis utilisez la fonction d’en-tête pour effectuer la redirection.