Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2012, 21h25   #1
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
Par défaut Une RewriteCond inhabituelle

Bonsoir,

Je doute que quelqu'un trouve...j'ai effectué un tas de recherches sur internet et j'ai le sentiment que ce n'est pas possible : j'aimerais effectuer une RewriteRule uniquement si un argument balancé dans l'URL est égal à la variable ${TIME_HOUR}

J'ai donc essayé plusieurs chose, mais je vais vous écrire celle qui me semble la plus logique pour que vous compreniez mon problème :

Code :
1
2
RewriteCond %{TIME_HOUR} ^/temp/index-([0-9]{1,2})$
RewriteRule ^index-([0-9]{1,2})$ hep.php?id=$1 [L]
une autre de mes tentative était celle-ci (on sait jamais, ça peut vous mettre sur une piste) :

Code :
1
2
RewriteCond %{REQUEST_URI} /temp/index-%{TIME_HOUR}
RewriteRule ^index-([0-9]{1,2})$ hep.php?id=$1 [L]
Pour information...aucune des deux solutions ne fonctionne...

Avez-vous une idée...?

Merci
fieldset est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 21h34   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
C'est la deuxième version qui a le plus de chances d'aboutir. C'est même surprenant qu'elle ne marche pas. Quand tu dis que ça ne marche pas, il se passe quoi, exactement ? Il y a donc un conflit potentiel avec d'autres règles. Tu peux donner le .htaccess complet et l'URL avec laquelle tu testes ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 21h47   #3
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
Tu as déjà le contenu total du htaccess Enfin pour être franc j'ai juste ceci en plus (en haut des deux dernières lignes) :

Code :
1
2
Options +FollowSymlinks
RewriteEngine On
Lorsque je dis qu'il ne se passe rien, je veux dire par là que ma RewriteRule n'est pas exécutée. Je ne suis pas redirigé vers le fichier hep.php

Le problème vient du fait qu'on ne peut pas utiliser les variables %{truc} dans le second argument. Ils sont réservés au premier argument uniquement.

J'ai essayé également quelque chose dans le genre :

Code :
1
2
3
RewriteCond %{REQUEST_URI} ^/temp/index-([0-9]{1,2})$
RewriteCond %{TIME_HOUR} %1
RewriteRule ^index-[0-9]{1,2}$ hep.php?id=$1 [L]
Le %1 étant censé représenter la valeur capturée par mes parenthèses (dans le premier RewriteCond)...

Ca ne fonctionne pas non plus

EDIT: J'ai oublié de te donner l'url avec laquelle je teste : /temp/index-21
fieldset est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 23h03   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
Serveur mutualisé ou serveur maison ?

A ma connaissance, tu peux utiliser les variables %{} partout.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 07h33   #5
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
Serveur dédié chez OVH (Gentoo release)

Je ne sais plus où j'ai lu ça, mais j'ai cru lire que dans le premier argument, on ne pouvait mettre qu'une chaîne de caractères (avec ou non les variables %{}) et que le deuxième argument était soit une valeur (chaîne) soit une expression régulière. Mais je n'ai vu nul part qu'on pouvait utiliser les variables %{}...J'espère vraiment me tromper

Pour information, peut-être que ça peut t'aider, j'avais également essayé ceci :

Code :
1
2
RewriteCond %{REQUEST_URI} /temp/index-21
RewriteRule ^index-([0-9]{1,2})$ hep.php?id=$1 [L]
Et ca fonctionnait nickel (enfin hier soir à 21h quoi ). C'est la raison pour laquelle je pensais que le second argument n'interprétait pas les variables

Peut-être qu'il faut échapper certains caractères de cette variable ?
fieldset est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 14h23   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
Très étrange. J'étais près à dire qu'il manquait AllowOverride All dans la conf d'Apache.

Du coup, l'idée c'est de voir si la variable %{TIME_HOUR} a la valeur attendue. Pour cela, ajoute cette variable dans la réécriture et affiche la valeur dans ton script hep.php :
Code :
RewriteRule ^index-([0-9]{1,2})$ hep.php?id=$1&hour=%{TIME_HOUR} [L]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 15h18   #7
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
Effectivement j'ai oublié de préciser que j'ai déjà effectué ce test et la valeur renvoyée par %{TIME_HOUR} est la bonne

Une autre idée lol ?

EDIT: J'ai l'impression que lorsque les variables %{} sont utilisées dans le second argument, elles ne sont pas interprétés. Les caractères %{} sont traités comme une banale chaîne de caractères.
fieldset est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 17h02   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
C'est peut-être ça, la doc n'est pas claire. C'est vrai que c'est rare d'utiliser des variables dans le second membre d'une RewriteCond. Si c'est le cas, je ne suis pas sûr qu'une solution existe.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 17h22   #9
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
C'est ennuyeux...
fieldset est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 21h39   #10
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 299
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 299
Points : 8 583
Points : 8 583
Ce que je voulais dire c'est qu'une solution pure Apache ne doit pas exister. Tu peux toujours rediriger vers hep.php dans lequel tu fais la vérification qui va bien.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 21h57   #11
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
En fait, je désirais mettre en place cette solution pour créer des liens temporaires vers des vidéos (pour éviter le leeching).

J'avais effectué quelques tests en PHP et ça ne fonctionnait pas comme je voulais, je n'arrivais pas à streamer mon flux vidéo à travers un fichier php.

Je m'étais donc orienté vers apache, mais il semblerait que ça soit impossible.

Quoiqu'il en soit, je suis effectivement retourné voir du côté de PHP et je viens de finir de mettre en place ma solution ! Ca fonctionne parfaitement avec PHP

Je te remercie pour ta patience _Mac_ !!
fieldset est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h05.


 
 
 
 
Partenaires

Hébergement Web