Je travaille pour une entreprise qui avait une polocyte d'URLs obscurcissantes pour les articles que vous deviez vous inscrire pour utiliser. Donc, ils auraient quelque chose commeAnnuler l'URL en utilisant le réécrire le mod
/story.php?story_id=Z_ZXYZ
où il y avait un code qui mis en correspondance des lettres aux chiffres de travailler l'histoire vraie id
si
Z = 0
Y = 1
X = 2
etc.
Nous déplaçons maintenant la pile de technologie et avons décidé que les urls obfuscated ne sont pas nécessaires. Je cherche donc à savoir s'il est possible d'un obscurcir les URL en utilisant mod rewrite
Jusqu'à présent, je
RewriteCond %{REQUEST_URI} ^.*story.php [NC]
RewriteCond %{QUERY_STRING} ^.*story_id=Z_([ZXYWVUTSRQ]*) [NC]
RewriteRule ^.*$ /story/${decryptmap:%1} [L,R=301]
J'ai une carte de réécriture dans le fichier httpd.conf
<IfModule mod_rewrite.c>
RewriteMap decryptmap txt:decyrpsdstxt
</IfModule>
Ce qui a un contenu
##
## decrypt urls
##
Z 0
X 1
etc ..
mais il dosnt semble fonctionner, même si je mets un texte dans la RewriteRule comme si RewriteRule ^.*$ /story/${decryptmap:ZXY} [L,R=301]
je reçois une URL comme /story/?story_id=Z_ZAD
Y at-il évident que je fais mal? Je peux voir que les deux conditions sont assorties, mais la carte ne semble pas fonctionner.
Dois-je même essayer de réécrire mod pour faire cela? Je pourrais rediriger vers un script qui le ferait assez facilement mais qui mettrait le code de redirection à deux endroits dont je n'ai pas aimé l'idée.
(je ne suis pas inquiet au sujet de la? Story_id = Z_ZAD, je sais comment se débarrasser de cette)
alternative, il pourrait utiliser script qui serait juste obtenir la carte et le coupler avec l'URL correcte, si mod_rewrite ne fonctionnerait pas. – dusoft
@dusoft: Oui, absolument. En fait, le type de carte de réécriture 'txt' utilise une recherche linéaire et donc O (n). Mais dix éléments ne sont pas un problème. Pour un plus grand nombre d'éléments, le type 'dbm' est un meilleur choix car il est implémenté avec une table de hachage (O (1)). – Gumbo
Je l'ai eu à travailler en utilisant 301 redirections à chaque étape, je pense que certaines de mes autres règles le brisaient. –