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 :

htaccess, urlrewriting avec point d'interrogation dans l'url


Sujet :

Apache

  1. #1
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut htaccess, urlrewriting avec point d'interrogation dans l'url
    Bonjour,
    Je souhaiterais que :

    http://monsite.com/register.php?a=va....com&i=SEZ01DE

    redirige vers :
    http://monsite.com/Index.php?option=...compte=SEZ01DE

    sur mon htacess j'ai écris cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^register.php?a=([a-z]*)&u=([a-z]*)&i=([a-z]*)$ Index.php?option=registeron&Category=$2&wilaya=$3 [L]
    mais je reçois toujours Erreur 404, il s'agit apparemment du premier ? dans ma règle mais même si je le fais précéder par \, c'est la même erreur. J'ai entendu parler d'un passage pas rewritecond mais je n'ai pas bien compris les exemples.
    Pourriez-vous m'aider? Merci

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Voir cette discussion pour voir comment travailler sur la query string avec mod_rewrite.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Merci du lien, je l'avais déjà visité mais c'est très flou comme explication. Je n'arrive pas à concrétiser pour mon exemple.

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Avant ta RewriteRule, tu mets ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule (.*) $1///%{QUERY_STRING} [C]
    et tu modifies ta RewriteRule pour travailler avec ce nouveau /// qui sert de séparateur à la place de ? (qui posera problème à mod_rewrite si on l'utilise) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^register.php///a=([a-z]*)&u=([a-z]*)&i=([a-z]*)$ Index.php?option=registeron&Category=$2&wilaya=$3 [L]

  5. #5
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut Oui mais...
    Bonjour,
    Je te remercies de tes efforts.
    J'ai appliqué cette règle et ça me donne Internal Server Error.

    Je mets ici la totalité de mon htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule (.*) $1///%{QUERY_STRING} [C]
    RewriteRule ^register.php///a=([a-z]*)&u=([a-z]*)&i=([a-z]*)$ Index.php?option=register&Category=$2&wilaya=$3 [L]
    RewriteRule ^Recherche.html$ Index.php?option=cherlarche [L]
    RewriteRule ^$ Index.php?option=Home [L]
    RewriteRule ^Erreur.html$ Index.php?option=Erreur [L]
    RewriteRule ^Contact.html$ Index.php?option=contact [L]
    RewriteRule ^Index.html$ Index.php?option=Home [L]
    RewriteRule ^Presentation.html$ Index.php?option=present [L]
    RewriteRule ^Prospection.html$ Index.php?option=prospect [L]
    RewriteRule ^traitement.html$ Index.php?option=Traite&Category=matricule [L]
    RewriteRule ^Vente-([a-z]*).html$ Index.php?option=Vente&Category=$1 [L]
    RewriteRule ^Loca-([a-z]*).html$ Index.php?option=Location&Category=$1 [L]
    RewriteRule ^Articl-([0-9]*).html$ Index.php?option=Article&Category=$1 [L]
    RewriteRule ^Formul.html$ Index.php?option=Formul&Category=0 [L]
    ErrorDocument 404 /Index.php?option=Home
    Tu remarques que je veux gérer le tout dans mon fichier Index.php avec les fonctions adéquates. option étant la variable qui détermine l'action à effectuer. Pour l'instant, il n'y a que register qui me pose problème. Si je ne trouve pas de solution avec ce ? j'opte pour un fichier register.php qui fait appel aux fonctions. Tu as bien sûr compris que c'est plus par défi que par nécessité que je voulais utiliser htaccess pour cette rewriterule.

  6. #6
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    C'est le RewriteRule ... [C] qui pose problème car il est activé pour toutes tes règles. Il faut donc que tu en limites la portée en ajoutant un RewriteCond sur register.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteCond %{REQUEST_URI} /register.php
    RewriteRule (.*) $1///%{QUERY_STRING} [C]
    RewriteRule ^register.php///a=([a-z]*)&u=([a-z]*)&i=([a-z]*)$ Index.php?option=register&Category=$2&wilaya=$3 [L]

  7. #7
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Je te remercie pour ton aide mais toujours Internal Server Error.
    Ne te casse pas la tête, comme je te l'ai dis j'ai abandonné de passer par htaccess. J'ai créé un fichier register.php et comme ça fonctionne...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/11/2010, 23h42
  2. Point d'interrogation dans le menu systeme
    Par [Mel] dans le forum MFC
    Réponses: 1
    Dernier message: 29/03/2007, 11h59
  3. Point d'interrogation dans UPDATE
    Par the_bmo dans le forum MySQL
    Réponses: 1
    Dernier message: 18/10/2006, 11h58
  4. Des points d'interrogation dans le retour js
    Par franculo_caoulene dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/11/2005, 16h25

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