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 :

Url rewriting


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Par défaut Url rewriting
    Bonjour,

    J'ai ce petit problème d'url rewriting, quand je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^tag/([0-9]+)/([0-9a-zA-Z-]+).html$ index.php?page=tag&t=$2&p=$1 [L]
    ça ne fonctionne pas si je visite l'url suivante:
    tag/1/mot-cle.html
    qui normalement s'écrit:
    index.php?page=tag&t=mot-cle&p=1

    Auriez vous une idée de la provenance du problème ?

    Merci d'avance.

  2. #2
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Par défaut
    Bon, j'ai eu une intuition, j'ai voulu tester, et évidemment, je n'arrive pas à activer le rewrite engine de mon serveur...

    Par contre je suis tombé sur un article, et je pense que mon intuition se vérifie : il manque peut-être un échappement du "." de ".html"

    Voilà la partie de l'article qui m'a mis sur la piste.
    http://www.votresite.tld/article.php?numero=8125&page=1

    Vous préféreriez, et cela se comprend, que vos visiteurs accèdent à cet article par :
    http://www.votresite.tld/article-8125-1.html

    La règle s’écrirait comme ceci :
    RewriteEngine on
    RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ article.php?numero=$1&page=$2 [L]
    (sans garantie aucune, donc ^_^)

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Salut,

    J'ai testé et je ne vois pas de problème.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $myPattern = '#^tag/([0-9]+)/([0-9a-zA-Z-]+)\.html$#';
    $myReplace = 'index.php?page=tag&t=$2&p=$1';
    $myString = "tag/1/mot-cle.html";
     
    $result = preg_replace($myPattern, $myReplace, $myString);
     
    print $result;

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 55
    Par défaut
    Merci pour votre réponse.
    J'ai testé et re-testé mais ça ne veux toujours pas fonctionner, pourtant d'autres réécritures fonctionnent très bien, vous pouvez tester ici les deux écritures :
    http://www.articlesenligne.com/tags/1/formation.html (renvoie sur la page d'accueil )
    http://www.articlesenligne.com/index...=formation&p=1

    Pour la regex suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ index.php?page=tag&t=$2&p=$1 [L]
    à l'aide !!

  5. #5
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Par défaut
    Peux-tu confirmer que l'URL rewriting fonctionne sur un exemple simple sur ton serveur ? Je jette un oeil sur mon serveur qui se rebelle, en attendant ^_^

    exemple : pastrouve.html peut-il renvoyer sur index.php ? La règle doit s'écrire

    RewriteUrl ^pastrouve\.html$ index.php [L]

  6. #6
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Par défaut
    Bon, je confirme, la regexp fonctionne.

    Par contre je me suis débatu une bonne demi-heure pour configurer apache pour qu'il fasse les règles de réécriture comme je voulais.
    J'ai tapé : tag/1/mot-cle.html,
    J'ai reçu
    $_GET['page'] = 1
    $_GET['t'] = mot_cle
    $_GET['p'] = 1
    et j'ai été redirigé vers index.php.

    Donc pour info, au cas où, mon fichier .htaccess :

    # Various rewrite rules.
    <IfModule mod_rewrite.c>
    RewriteEngine on

    # A CHANGER -------------------------------
    # Modify the RewriteBase if you are using this page in a subdirectory or in a
    # VirtualDocumentRoot and the rewrite rules are not working properly.
    # Mon path : localhost/dev/tests/rewriterule...
    RewriteBase /dev/tests/rewriterule

    # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.

    RewriteRule ^tag/([0-9]+)/([0-9a-zA-Z-]+)\.html$ index.php?page=tag&t=$2&p=$1 [L]
    </IfModule>
    Et mon httpd.conf :
    <Directory "F:/Prog/php/dev" >
    Options FollowSymLinks Indexes Multiviews
    #IndexOptions FancyIndexing
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
    Alias /dev "F:/Prog/php/dev"
    En espérant que ça t'aide. Mais le problème ne semble pas être la regexp...

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

Discussions similaires

  1. [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
  2. url rewriting
    Par olive.m dans le forum Apache
    Réponses: 3
    Dernier message: 17/06/2005, 02h01
  3. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 20h18
  4. Activer l'url rewriting
    Par Otaugames dans le forum Apache
    Réponses: 2
    Dernier message: 09/03/2005, 14h58
  5. Url Rewriting / htaccess
    Par bisi dans le forum Apache
    Réponses: 4
    Dernier message: 25/07/2004, 22h12

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