IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

String Replace avec httpd.conf


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 64
    Par défaut String Replace avec httpd.conf
    Bonjour à vous,

    J'ai Apache 2.2 avec PHP 5.2.17 d'installer.

    Avec httpd.conf, je passe des valeurs à des Header pour que par la suite PHP puisse les lire. J'aimerais pouvoir modifier un peu cette valeur en faisant un "str_replace". En gros présentement j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <IfModule mod_headers.c>
    RewriteEngine on
    RewriteRule .* - [E=SN:%{HTTP:sn}]
    RewriteRule .* - [E=GIVENNAME:%{HTTP:givenname}]
    RequestHeader set SM_OPERATORID "%{GIVENNAME}e.%{SN}e"
    </IfModule>
    Donc comme vous le voyez, je prend la valeur SN à laquelle je concatene GIVENNAME, ce qui donne la string: "SN.GIVENAME".

    Cependant j'aimerais faire une modif à cette variable. En PHP c'Est super facile (exemple ici remplacer la lettre a par b):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("a", "b", $SNGIVENAME)
    Mais avec un fichier httpd.conf.... je suis un peu confu :S

    Merci de votre aide!

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu ne peux faire ça qu'avec une RewriteMap qui appelle un script externe. Autant dire qu'il vaut mieux le faire en PHP dans tes pages avec str_replace.

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 64
    Par défaut
    My god...

    Mettons je te dis que je peux pas en PHP...

    Comment faire avec RewriteMap?.... :S
    Est ce que ca s'explique ici?

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Il faut écrire un script... en PHP, par exemple ! Voir la doc de RewriteMap.

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 64
    Par défaut
    Vraiment pas simple cette affaire la....

    Je vais voir ce que je peux en resortir.

  6. #6
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 64
    Par défaut
    J'ai réussi à trouver la solution, sans utiliser de RewriteMap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <IfModule mod_headers.c>
    RewriteEngine on
    RewriteRule .* - [E=SN:%{HTTP:sn}]
    RewriteCond %{HTTP:sn} ^(.*)'(.*)$
    RewriteRule .* - [E=SN:%1%2]
    RewriteRule .* - [E=GIVENNAME:%{HTTP:givenname}]
    RewriteCond %{HTTP:givenname} ^(.*)'(.*)$
    RewriteRule .* - [E=GIVENNAME:%1%2]
    RequestHeader set SM_OPERATORID "%{GIVENNAME}e.%{SN}e"
    </IfModule>
    J'avais aussi écris cette réponse dans un autre site, en anglais. Voici mon texte qui explique la réponse. Désolé de la Pas de traduction.
    In "normal" language it means:
    Line 3: For any webpage on your website, Create the variable SN and assign it %{HTTP:sn}
    4: If %{HTTP:sn} == Start with any character AND have an apostrophe AND Finish with any character
    5: Assign to SN = The previous "Start with any character" + "Finish with any character" // Comes from the preceding condition
    6: For any webpage on your website, Create the variable GIVENNAME and assign it %{HTTP:givenname}
    7: If %{HTTP:givenname} == Start with any character AND have an apostrophe AND Finish with any character
    8: Assign to GIVENNAME = The previous "Start with any character" + "Finish with any character" // Comes from the preceding condition
    9: Set the new Header: GIVENNAME+"."+SN

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer des caractères avec la fonction string.replace
    Par chtom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/12/2008, 16h43
  2. Probleme avec httpd.conf
    Par philippe57460 dans le forum Autres
    Réponses: 11
    Dernier message: 30/06/2008, 22h16
  3. resultat bizare avec string replace
    Par stranger dans le forum C++
    Réponses: 2
    Dernier message: 08/06/2007, 20h24
  4. [mod_rewrite] marche dans httpd.conf pas avec .htaccess
    Par __fabrice dans le forum Apache
    Réponses: 3
    Dernier message: 08/05/2007, 21h12
  5. Probleme avec Httpd.conf
    Par DROMADAIRE dans le forum XMLRAD
    Réponses: 6
    Dernier message: 05/02/2007, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo