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 :

Réécriture URL à la volée


Sujet :

Apache

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut Réécriture URL à la volée
    Bonsoir à toutes et à tous

    Après avoir potassé plusieurs docs, forum et autre sujet du même type, je ne parviens pas à trouver de solutions à ma requête pourtant simple.
    Je dispose d'un site en cours de construction sur lequel je souhaiterai que certaines URLS tapées sous 3 formes renvoi vers une page PHP en methode GET afin de subir les traitements adéquates et générer une page en fonction des variables.
    les urls inexistantes auraient cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    1 - traitement-variable1-variable2.html
    2 - variable1-traitement-variable2.html
    3 - variable2-traitement-variable1.html
    l'idée est que ces 3 formes d'urls pointent vers traitement.php?chaine=LURLATRAITER (je précise qu'en paramètre, celle ci fonctionne impec) cependant je souhaite afficher l'url sous sa forme html.
    Je sèche j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteRule 	^([a-z]*)-traitement-(-[a-z]*)\.html$  /traitement.php?chaine=traitement-$1-$2  [L]
    RewriteRule 	^([a-z]*)-traitement-(-[a-z]*)\.html$  /traitement.php?chaine=$1-traitement-$2  [L]
    RewriteRule 	^(-[a-z]*)-traitement-([a-z]*)\.html$  /traitement.php?chaine=$2-traitement-$1 [L]
    Mais j'avoue que cela ne fonctionne pas, je n'ai pas programmé depuis quelques années et je suis un peu rouillé. ces Urls dynamiques cohabitent avec quelques pages html et php, pour indication
    Merci par avance de vos lumière

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonjour,

    Je serai tenté d'essayer cela:

    variable1-traitement-variable2.html
    Code .htaccess : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule ^([a-z]+)-traitement-([a-z]+).html$ traitement.php?chaine=traitement-$1-$2  [L]

    n'étant pas expert je conseille seulement d'essayer

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    Merci cependant j'ai fait choux blanc :

    je détaille le process url inexistante souhaitée en entrée :
    3 modes
    variable1 = un mot unique
    variable2 = succession de terme séparés par des tirets sans accents ni caractères spéciaux (genre : tata-titi-toto-tutu)
    traitement est le mot séparateur entre variable1 et variable2

    l'idée c'est qu'en url j'ai soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    traitement-variable1-variable2.html
    ou
    variable1-traitement-variable2.html
    ou encore variable2-traitement-variable1.html
    mais que quoi qu'il en soit les 3 type pointent verts la page traitement.php?chaine=l'une ou l'autre des 3 combinaisons (traitement variable1 et variable3)
    car cette dernière page elle, traite selon, comment restructurer la page selon la combinaison.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteRule 	^traitement-(-[a-z]*).html$  /traitement-ville.php?chaine=traitement-$1  [L]
    RewriteRule 	^([a-z]*)-traitement-(-[a-z]*)\.html$  /traitement-ville.php?chaine=$1-traitement-$2  [L]
    RewriteRule 	^(-[a-z]*)-traitement-([a-z]*)\.html$  /traitement-ville.php?chaine=$1-traitement-$2 [L]
    aucune ne fonctionne .... je désespère
    --
    Je souhaiterai faire de même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ErrorDocument 401 /erreurcode.php?code=401;
    ErrorDocument 403 /erreurcode.php?code=403;
    ErrorDocument 404 /erreurcode.php?code=404;
    ErrorDocument 500 /erreurcode.php?code=500;
    et rien ni fait meme si la réécriture est possible, qu'est ce qui patauge dans ma syntaxe ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Malheureusement je ne saurais t'aider plus

    Tu au bien le RewriteEngine on?
    Ton serveur a-t-il le RewriteModule dinstallé?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    Je le confirme, mais là je sèche, je sais qu'il est possible de mofifier des urls de type page.php?code=10-2exdechaine en 10-2exdechaine.html et c'est précisément ce que je souhaite obtenir.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 227
    Par défaut
    Bonjour,
    [a-z] ne prend en compte que les alpha-minuscule et non le chiffres en plus, d'autres part tu mets également un -, à quoi sert-il attendu que tu le mets également sur traitement.

    Je verrais un truc dans le style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule  ^traitement-([\w]*).html$  /traitement-ville.php?chaine=traitement-$1 [L]
    RewriteRule  ^([\w]*)-traitement-([\w]*).html$  /traitement-ville.php?chaine=$1-traitement-$2 [L]

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    merci pour cette réponse, à quoi sert l w ?

    Et oui en effet quelques précisions s'imposent :
    la variable 1 ne contient que des caractères minuscules sans accents ni caractères spéciaux... pas de chiffre.
    la variable 2 est elle aussi uniquement composée caractères minuscules sans accents avec uniquement un tiret de séparateur comme caractère spécial... et pas de chiffre. en gros une chaine de type la-petite-maison-dans-la-prairie
    Ici traitement me permet de savoir comment traiter l'url selon les 3 modes d'entrée et de composer une page en conséquence.
    Le seul HIC c'est bien url en html vers page php avec déclaration des variable qui m'ennuit dans ce htaccess.
    Et uniquement dans ce cas car j'ai d'autres pages html qui elles n'ont pas du tout cette syntaxe.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    • variable1 = un mot unique, ne contient que des caractères minuscules sans accents ni caractères spéciaux... pas de chiffre.
    • variable2 = succession de terme séparés par des tirets sans accents ni caractères spéciaux

    Donc :
    • variable1 = ([a-z]*)
    • variable2 = ([a-z-]*)


    1- traitement-variable1-variable2.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule 	^traitement-([a-z]*)-([a-z-]*)\.html$  /traitement-ville.php?chaine=traitement-$1-$2  [L]
    2- variable1-traitement-variable2.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule 	^([a-z]*)-traitement-([a-z-]*)\.html$  /traitement-ville.php?chaine=$1-traitement-$2  [L]
    3- variable2-traitement-variable1.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule 	^([a-z-]*)-traitement-([a-z]*)\.html$  /traitement-ville.php?chaine=$1-traitement-$2  [L]
    Remarques :
    • ça suppose que variable1 ou variable2 ne contiennent pas le mot-clé "traitement" !
    • dans traitement-ville.php, tu ne récupères qu'un seul paramètre $_GET['chaine']...
      Tu devras donc refaire une action pour extraire les 2 variables.
      Ce n'est pas très efficace...

    Ça me semble plus logique et malin d'avoir 3 parametres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ............ /traitement-ville.php?do=traitement&var1=$1&var2=$2
    ...selon les 3 modes d'entrée...
    Je ne vois pas l'intérêt de compliquer à ce point !
    Un seul mode suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    traitement-variable1-variable2.html
    Citation Envoyé par MACWIN33 Voir le message
    ... urls de type page.php?code=10-2exdechaine en 10-2exdechaine.html
    et c'est précisément ce que je souhaite obtenir.
    Il y a des chiffres, et pas le mot-clé "traitement" dans ton exemple !!

    Quand tu sauras vraiment ce que tu veux.....
    ...tu sauras comment l'obtenir.
    Dernière modification par Invité ; 13/06/2018 à 09h38.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    Voici mon htaccess actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    RewriteEngine On
    RewriteBase /
    Options -Indexes
    Options +FollowSymlinks
     
    #ErrorDocument 401 /erreurcode.php?code=401;
    #ErrorDocument 403 /erreurcode.php?code=403;
    #ErrorDocument 404 /erreurcode.php?code=404;
    #ErrorDocument 500 /erreurcode.php?code=500;
     
    RewriteRule 	^traitement-([a-z]*)-([a-z-]*)\.html$  /traitement-ville.php?chaine=traitement-$1-$2  [L]
    RewriteRule 	^([a-z]*)-traitement-([a-z-]*)\.html$  /traitement-ville.php?chaine=$1-traitement-$2  [L]
    RewriteRule 	^([a-z-]*)-traitement-([a-z]*)\.html$  /traitement-ville.php?chaine=$2-traitement-$1 [L]
    en bref je récupérère une erreur 500 dans tous les cas dès qu'il est en ligne.
    pour répondre à ta question les 3 formes d'urls m'apportent un plus en terme de référencement raison pour laquelle j'ai opté pour ces 3 traitements.
    cependant aucun ne fonctionne !, La encore une fois je ne vois ce qui génère le soucis : traitement permet un traitement de chaine qui peut être très complexes seul deux mots permettent d'en simplifier les traitements : traitement et la variable 1 qui peut s'enrichir de nouvelles valeur dans l'avenir.
    la variable 2 est elle indéfinie seulement elle est séparée par des tirets, dès que la position de traitement est définit alors on passe dans une moulinette qui génère un contenu totalement dynamique. c'est à première vue alambiqué mais c'est une technique que j'avais mis au point il y a plus de 7 ans et qui cartonne encore sur les réseaux. (pour l'anecdote), je souhaite que selon ces 3 constructions.html affichées je puisse renvoyer vers un traitement-ville.php?chaine= soit 1,2 ou 3 (sans le html) en bref.... mais je cale

Discussions similaires

  1. Réécriture url pour site multilingue
    Par redah75 dans le forum Apache
    Réponses: 29
    Dernier message: 22/12/2009, 17h54
  2. Réécriture url + AuthDBDUserPWQuery
    Par pingou2712 dans le forum Apache
    Réponses: 1
    Dernier message: 17/12/2009, 13h14
  3. probleme réécriture url (url rewriting)
    Par StephDeb dans le forum Apache
    Réponses: 5
    Dernier message: 06/08/2009, 16h40
  4. réécriture url avec extension inconnue
    Par gigraphe dans le forum Apache
    Réponses: 1
    Dernier message: 12/02/2009, 13h07
  5. Problème d'authentification / réécriture URL
    Par arN34 dans le forum Apache
    Réponses: 4
    Dernier message: 30/09/2006, 16h24

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