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

PHP & Base de données Discussion :

url rewritting petit pb


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut url rewritting petit pb
    bonjour,


    voila j'ai voulu faire un url rewriting sur mon menu qui a marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RewriteEngine on
     
    RewriteRule ^accueil-catiprint-machine-imprimerie.html ./index.php [L]
    RewriteRule ^accueil-catiprint-machine-imprimerie-fr.html ./index.php?lang=fr [L]
    RewriteRule ^produits-catiprint-machine-imprimerie-fr.html ./pages/produits-catiprint.php?lang=fr [L]
    RewriteRule ^vendez-catiprint-machine-imprimerie-fr.html ./pages/vendez-catiprint.php?lang=fr [L]
    RewriteRule ^cherchez-catiprint-machine-imprimerie-fr.html ./pages/cherchez-catiprint.php?lang=fr [L]
    RewriteRule ^contact-catiprint-machine-imprimerie-fr.html ./pages/contact-catiprint.php?lang=fr [L]
    petite question car un petit problème il y a un système de langue avec des drapeau mais maintenant quand je clic sur le drapeau j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <lien url="http://localhost/catiprint/accueil-catiprint-machine-imprimerie-fr.html?lang=en">http://localhost/catiprint/accueil-catiprint-machine-imprimerie-fr.html?lang=en</lien>
    qui est logique comment faire alors le url rewriting avec les autre langue ?

    merci.

  2. #2
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    merci j'ai tester donc maintenant j'ai cette url qui apparait quand je clic sur un drapeau:

    http://localhost/catiprint/accueil-c...r.html?lang=en

    probléme il ne rentre pas dans ma boucle donc la page reste en francais:


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    if(empty($_GET['lang'])){
    	$_SESSION['lang'] = "fr";
    }else{
    	switch($_GET['lang']){
    		case "fr":
    		$_SESSION['lang'] = "fr";
    		break;
    		case "en":
    		$_SESSION['lang'] = "en";
    		break;
    		case "es":
    		$_SESSION['lang'] = "es";
    		break;
    		default :
    		$_SESSION['lang'] = "fr"; //au cas ou quelqu'un rentre autre chose que fr/en ou es
    		break;
    	}
    }
    print_r($_SESSION['lang']);
    switch($_SESSION['lang']){
    		case "fr":
    		$fichier_langage = "lang/fichier_fr.php";
    		break;
    		case "en":
    		$fichier_langage = "lang/fichier_en.php";
    		break;
    		case "es":
    		$fichier_langage = "lang/fichier_es.php";
    		break;
    }
    ?>

    LE htaccess:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    RewriteEngine on
     
    RewriteRule ^accueil-catiprint-machine-imprimerie.html ./index.php [L]
    RewriteRule ^accueil-catiprint-machine-imprimerie-fr.html ./index.php?lang=fr [L]
    RewriteRule ^produits-catiprint-machine-imprimerie-fr.html ./pages/produits-catiprint.php?lang=fr [L]
    RewriteRule ^vendez-catiprint-machine-imprimerie-fr.html ./pages/vendez-catiprint.php?lang=fr [L]
    RewriteRule ^cherchez-catiprint-machine-imprimerie-fr.html ./pages/cherchez-catiprint.php?lang=fr [L]
    RewriteRule ^contact-catiprint-machine-imprimerie-fr.html ./pages/contact-catiprint.php?lang=fr [L]
     
    RewriteRule ^accueil-catiprint-machine-imprimerie-([a-z]+).html ./index.php?lang=$1 [QSA]
    ?>
    print_r() me renvoie toujours fr qiuand je clic sur n'importe quelle drapeau.
    sauriez vous pourquoi? :p
    merci.

  3. #3
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    Je pense que parce-que à la ligne 5 de ton htaccess, la condition se vérifie quand tu cliques sur ton lien et ne vérifie plus les autres conditions.

    tu pourrais tout faire en une seule ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule ^([a-z]+)-catiprint-machine-imprimerie-([a-z]+).html ./index.php?page=$1&lang=$2 [QSA]

  4. #4
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    merci ca a presque fonctionne maintenant quand je clique sur la page index.php c est nikel si je selectionne un tableau la langue change, j'ai fait ceci pour les autres pages:
    RewriteEngine on

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    RewriteRule ^accueil-catiprint-machine-imprimerie-([a-z]+).html ./index.php?page=$1&lang=$2 [QSA]
     
    RewriteRule ^produits-catiprint-machine-imprimerie-([a-z]+).html ./pages/produits-catiprint.php?&lang=$2 [QSA]
     
    RewriteRule ^cherchez-catiprint-machine-imprimerie-([a-z]+).html ./pages/cherchez-catiprint.php?page=$1&lang=$2 [QSA]
     
    RewriteRule ^vendez-catiprint-machine-imprimerie-([a-z]+).html ./pages/vendez-catiprint.php?page=$1&lang=$2 [QSA]
     
    RewriteRule ^contact-catiprint-machine-imprimerie-([a-z]+).html ./pages/contact-catiprint.php?page=$1&lang=$2 [QSA]
    ?>
    mais pour les autres page il y'a un petit pb, la langue change bien quand je clic sur un drapeau mais par exemple quand je vais sur la page produits-catiprint:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if($_GET['lang']=="fr")
    {
    	$body.='<h2>Machines disponibles sauf vente entre-temps.</h2>';
    }
    if($_GET['lang']=="en")
    {
    	$body.='<h2>Machines available subject to remaining unsold.</h2>';
    }
    if($_GET['lang']=="es")
    {
    	$body.='<h2>M&aacute;quinas disponibles salvo venta.</h2>';
    }
    ?>
    rien ne s'affiche.
    Merci.

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    j'ai fait un print_r de la page produit :

    Array ( [lang] => )

    merci.

  6. #6
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    N'oublie pas d'enlever les balises php dans ton htaccess^^

    et attention, tu as mal recopié le code que je t'ai filé, ci-dessous, la variable lang ne sera jamais initialisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule ^accueil-catiprint-machine-imprimerie-([a-z]+).html ./index.php?page=$1&lang=$2 [QSA]
    tu dois lui donner une regex supplémentaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule ^([a-z]+)-catiprint-machine-imprimerie-([a-z]+).html ./index.php?page=$1&lang=$2 [QSA]

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    RewriteEngine on


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteRule ^accueil-catiprint-machine-imprimerie-([a-z]+).html ./index.php?page=$1&lang=$2 [QSA]
     
    RewriteRule ^([a-z]+)-catiprint-machine-imprimerie-([a-z]+).html ./index.php?page=$1&lang=$2 [QSA]


    j'ai mis le code mais quand je clique ma page produit je retombe toujours sur la page index.php mais l'url en haut me donne:

    http://localhost/catiprint/produits-...imerie-fr.html

    et mon print :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [page] => produits [lang] => fr )
    merci.

Discussions similaires

  1. basic url rewriting petit prob
    Par HoliCApplet dans le forum Apache
    Réponses: 1
    Dernier message: 07/04/2014, 11h56
  2. [MySQL] Petit soucis d'url rewriting
    Par tryan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/11/2010, 15h16
  3. Petit souci avec URL Rewriting
    Par jhdscript dans le forum Apache
    Réponses: 6
    Dernier message: 18/06/2008, 09h02
  4. [URL Rewriting] Petit problème "basique"
    Par Bloodscalp dans le forum Apache
    Réponses: 6
    Dernier message: 20/02/2008, 17h58
  5. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 17h13

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