Page 1 sur 2

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 11:57
par gizmo78
Hôla!

Petite question je coince sur un point.

Objectif: faire du RewriteUrl en fonction d'un ID stocké dans un fichier.

Le Rewrite en fonction de l'id je sais faire:
RewriteCond %{HTTP:X-ID} ^123
RewriteRule .* http://www.grifon.fr

Sauf que quand je veux rajouter la notion de parser le fichier je bloque.
j'ai essayé ca:
RewriteEngine On
RewriteMap id "txt:/etc/httpd/conf/id.txt"
RewriteCond %{HTTP:${id:$1}} ${id:%2}
RewriteRule .* https://www.google.fr

id:$1 = X-ID
id:$2 = 123

Sauf que je me prends un jolie 403.

Une idée du soucis?

tout ca doit tourner uniquement avec apache et sous redhat.

Merci :)

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:36
par Zedoune
pourquoi tu as id:$1 et id:%2 après ?

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:39
par poulpito
spotted :D

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:39
par gizmo78
ca spécifie la colonne j'imagine, pas trop d'explication dans ce que j'ai lu :/

poulpito: plait-il? :D

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:41
par poulpito
il se présente comment ton fichier ?

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:41
par gizmo78
X-ID 123

simple.

Mais après je suis pas sur d'utiliser la bonne technique :/

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:42
par poulpito
back-references $N to the RewriteRule pattern
back-references %N to the last matched RewriteCond pattern

le $ / % pour Z

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:45
par gizmo78
information intéressante merci :)

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:48
par poulpito
donc il me semble que c'est bien $2 qu'il te faut et pas %2

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:48
par Zedoune
tu peux écrire id:$2|valeur par défaut aussi

ça peut aider à débugger en mettant en dur les valeurs pour voir si ça va pas bien chercher les valeurs ^^

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:49
par poulpito
ouaip $id2|666 pour faire plaisir à Z :D

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:51
par gizmo78
poulpito: effectivement la coquille %/$ je l'ai déjà corrigée quand je l'ai vue.

Je test le coup du pipe :jap:

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:51
par kalistyan
HS

Je n'y comprends absolument rien :pt1cable:

@Giz Pour ma culture générale, quel est ton but ? :jap:

/HS

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 14:54
par gizmo78
Z: j'ai testé et pareil, donc je pense qu'il y a quelque chose que je fais mal.

# Rewrite
RewriteEngine On
RewriteMap id "txt:/etc/httpd/conf/id.txt"
RewriteCond %{HTTP:X-ID} ${id:$1|123}
RewriteRule .* https://www.google.fr

Kali: routé un utilisateur en fonction de son id pour une plateforme web


(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 15:36
par gizmo78
RewriteEngine On
RewriteMap id "txt:/etc/httpd/conf/id.txt"
RewriteCond %{HTTP:X-ID} ^($id|123)
RewriteRule .* https://www.google.fr

ca, ca fonctionne. Par contre quand je retire le pipe, ca fonctionne plus, donc ca récupère rien au niveau du fichier....

bref ca avance

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 16:19
par dsebire
les droits sur le fichiers sont OK ?

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 16:21
par gizmo78
j'ai essayé à 2 endroits:
/var/www/html
/etc/httpd/conf

à chaque fois en root ou apache pas de changement.

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 16:23
par Zedoune
il tourne en chroot ou pas ?
si oui ce serait un truc du genre /var/www/html/etc/httpd/conf/id.txt :P

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 16:24
par gizmo78
je dirais non, en tout cas j'ai fais une installe de base de httpd sans rien toucher d'autre

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 16:32
par gizmo78
Bon j'ai activé les logs du rewrite et voila le joli message:
RewriteCond: input='123' pattern='^($id:$1)' => not-matched

du coup ca risque pas de fonctionner :)

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 16:43
par Zedoune
au lieu de $id faudrait pas écrire ${id} ?

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 16:45
par gizmo78
pareil avec ${id:$1}:
RewriteCond: input='123' pattern='${id:$1}' => not-matched

en faite il interprète pas ce qu'il y a après le header

(résolu)Apache: rewrite et parse de fichier

Publié : mar. 13 sept. 2016 17:24
par gizmo78
ca avance:
http://www.gossamer-threads.com/lists/a ... ers/389659

donc le deuxième argument c'est uniquement un regex.

du coup, RewriteCond %{HTTP:X-ID},${id:$1} regex

a voir ce que je dois coller ^^

(résolu)Apache: rewrite et parse de fichier

Publié : mer. 14 sept. 2016 11:12
par gizmo78
la technique précédente n'est pas valable car y a pas de gestion de l'égalité.
Pourtant d'après le lien précédent, c'est possible mais je ne comprends pas comment.

J'ai essayé une autre technique:


Redirect "/" https://www.google.fr


le in est la pour inclure une liste. Si je remplace la variable par '123', ca fonctionne.
Sauf qu'il interprète pas la variable et je bloque la dessus aussi :D

bref je me galère \o/

(résolu)Apache: rewrite et parse de fichier

Publié : mer. 14 sept. 2016 17:18
par gizmo78
apache abandonné ^^

Passage en python et en 1H ca juste marche :)