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 :

Variable utilisable dans htaccess ?


Sujet :

Apache

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Par défaut Variable utilisable dans htaccess ?
    Bonjour,

    Je sais pas si c'est faisable, mais je souhaiterais pouvoir déclarer une variable dans un fichier htaccess et pouvoir la réutiliser par la suite dans ce même fichier.

    Dans l'idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RewriteEngine on
     
    SetEnv SERV localhost
    #SetEnv SERV www.preprod.fr
    #SetEnv SERV www.prod.fr
     
    RewriteRule ^(fr|en|es|nl)/page/([^/]+)/index.php$ http://SERV/$1/page/$2/ [R=301,L]
    RewriteRule ^(fr|en|es|nl)/page/([^/]+)$ http://SERV/$1/page/$2/ [R=301,L]
    ça me permettrai en gros de pouvoir switcher rapidement entre mes différents environnement et ne pas avoir à gérer 3 htaccess (source d'erreurs/oublis).

  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
    Un petit coup de doc Apache ?
    %{ENV:variable}, where variable can be any environment variable, is also available. This is looked-up via internal Apache structures and (if not found there) via getenv() from the Apache server process.
    C'est décrit dans la doc de RewriteCond mais on peut utiliser ces variables avec RewriteRule.

    Donc la syntaxe existe : %{ENV:SERV}

    Sauf qu'il y a une sombre histoire d'ordre d'exécution des modules et donc il se peut que, même si la variable est bien déclarée, elle n'est pas accessible dans ta RewriteRule. Si c'est le cas, essaie avec SetEnvIf qui est appelé à un autre moment que SetEnv.

    Ceci dit, par rapport à l'utilisation que tu sembles vouloir faire de la variable d'environnement, j'ai l'impression qu'elle ne te sert à rien : si le but est uniquement de "calculer" le hostname des URL, il te suffit de ne rien mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(fr|en|es|nl)/page/([^/]+)/index.php$ /$1/page/$2/ [R=301,L]
    ou d'utiliser %{HTTP_HOST} :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(fr|en|es|nl)/page/([^/]+)/index.php$ http://%{HTTP_HOST}/$1/page/$2/ [R=301,L]
    à condition d'appeler initialement l'URL redirigée avec le bon hostname.

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

Discussions similaires

  1. [AC-2003] Variable utilisée dans tous mes formulaires
    Par gentoo dans le forum IHM
    Réponses: 2
    Dernier message: 18/05/2009, 11h33
  2. Réponses: 1
    Dernier message: 12/04/2009, 17h54
  3. Réponses: 2
    Dernier message: 02/02/2009, 12h09
  4. Variable utilisée dans une chaine de caractères
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/10/2008, 13h46
  5. [MySQL] Problème de syntaxe avec variable utilisée dans fonction PHP et MySQL
    Par redvivi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/03/2008, 21h07

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