(débutant) Réecriture via htaccess

Discussion dans 'URL Rewriting et .htaccess' créé par Akiramia, 24 Mai 2012.

  1. Akiramia
    Akiramia Nouveau WRInaute
    Inscrit:
    24 Mai 2012
    Messages:
    3
    J'aime reçus:
    0
    Bonjour,

    Je suis débutant en URL rewriting et même si j'ai bien compris les principes de base, j'avoue que je patauge complet.

    Je souhaiterais qu'une adresse du style http://comptoir-du-net.fr/portail/?page=breve&breve=87 (elle s'affiche ainsi mais dans la réalité ce devrait plutôt être http://comptoir-du-net.fr/portail/index.php?page=breve&breve=87) soit accessible à cette adresse : http://comptoir-du-net.fr/breve-87.

    En suivant vos tuto, j'en suis arrivé à cette ce code pour le .htaccess :

    Code:
    Options +FollowSymlinks
    
    RewriteEngine on
    
    RewriteRule ^breve-([0-9]+)\.html$  /portail/?page=breve&breve=$1 [L]
    Et ça ne fonctionne pas : www.comptoir-du-net.fr/breve-87.html 404 not found.

    Si qq'un pouvait éclairer ma lanterne, ce serait avec une grande joie.

    Cordialement.
     
  2. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    7 239
    J'aime reçus:
    0
    Bonjour

    Sous cette forme, tu ne peux pas utiliser une URL avec des paramètres PHP dans la partie de gauche de la ligne de réécriture.
    il faut utiliser une autre ligne avec la directive RewriteCond

    http://httpd.apache.org/docs/current/fr/mod/mod_rewrite.html

    Par contre je suis pas un expert, je passe la main pour la suite :mrgreen:
     
  3. alaincassis
    alaincassis WRInaute impliqué
    Inscrit:
    6 Août 2006
    Messages:
    567
    J'aime reçus:
    0
    Et en essayant sans le html, qui n'est nulle part dans tes exemples ? :
    Code:
    RewriteRule ^breve-([0-9]+)$  /portail/?page=breve&breve=$1 [L]  

    Ou peut-être tu as mal écrit tes exemples ?
     
  4. Akiramia
    Akiramia Nouveau WRInaute
    Inscrit:
    24 Mai 2012
    Messages:
    3
    J'aime reçus:
    0
    Merci de votre aide, oui, j'ai mal écrit l'exemple.

    J'y suis arrivé mais j'ai un soucis :

    Code:
    Options +FollowSymlinks
    
    RewriteEngine on
    
    RewriteRule portail/(.*)-(.*)$ portail/index.php?page=$1&breve=$2
    RewriteCond %{QUERY_STRING} ^page=(.*)&breve=(.*)$
    RewriteRule ^$ http://comptoir-du-net.fr/portail/index.php?%1-%2? [L,R=301]
    http://comptoir-du-net.fr/portail/?page=breve&breve=45 est bien accessible à
    http://comptoir-du-net.fr/portail/breve-45

    Seulement, j'ai aussi un dossier images dans le dossier portail et lorsque j'appelle
    http://comptoir-du-net.fr/portail/images/fond-rouge.gif l'image ne charge pas. Je l'ai renommé en fondrouge.gif et elle peut être appelé.

    Il doit falloir modifier les conditions ou mettre des exceptions mais alors là ???

    De plus, j'ai un duplicate content de ce fait, j'ai bien modifier le php pour ne plus appeller les anciennes URL mais comment faire pour les rendre inaccessible ?
     
  5. alaincassis
    alaincassis WRInaute impliqué
    Inscrit:
    6 Août 2006
    Messages:
    567
    J'aime reçus:
    0
    Le htaccess me parait un peu compliqué ! . On doit pouvoir le faire en 1 seule ligne .

    Pour le duplicate, une simple balise canonical et c'est tout !
     
  6. Akiramia
    Akiramia Nouveau WRInaute
    Inscrit:
    24 Mai 2012
    Messages:
    3
    J'aime reçus:
    0
    Alors là, je veux bien un coup de main pour tout simplifier et surtout mettre des conditions (cf mon image avec un tiret).

    Pour la balise canonical, je viens de lire ce que c'était mais là aussi, je vois pas quoi mettre dans l’entête :

    J'imagine qq chose comme cela :

    <link rel="canonical" href="http://comptoir-du-net.fr/portail/breve-"> ?

    J'avoue que je sèche ...