problème réécriture avec un cms

Discussion dans 'URL Rewriting et .htaccess' créé par bproductiv, 27 Avril 2010.

  1. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 672
    J'aime reçus:
    0
    Bonjour à tous,
    je travaille actuellement sur le site d'un client qui était entièrement statique, et que je passe sous CMSMS afin de faciliter sa gestion.
    Je rencontre un problème par rapport à la réécriture sur 3 pages de calculs dynamiques.
    Voici la partie du htaccess posant problème :
    Code:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php?page=$1 [QSA]
    RewriteRule ^([0-9]*)-(.*).html$ index.php?mact=News,cntnt01,detail,0&cntnt01articleid=$1&cntnt01origid=&cntnt01returnid=$2
    #ancienne réécriture pour les page de calcul en php - c'est ici qu'il y a un problème je pense
    RewriteRule ^credit-(.*)-(.*)-(.*)\.htm$ credit-calcul.php?cap=$1&taux=$2&annee=$3 [L]
    RewriteRule ^credit-(.*)-(.*)-(.*)\.html$ credit-calcul.php?cap=$1&taux=$2&annee=$3 [L]
    Quand je clique sur un lien qui est censé m'afficher la page dynamique de calcul, j'obtiens une 404.
    Les règles doivent se téléscoper, mais je suis pitoyable en réécriture et expressions régulières, si quelqu'un à une idée ?

    Merci d'avance pour toute suggestion.
     
  2. anemone-clown
    anemone-clown WRInaute passionné
    Inscrit:
    11 Novembre 2007
    Messages:
    1 577
    J'aime reçus:
    20
    Bonjour,

    déjà, tu peux résumer les 2 règles en 1 seule :

    Code:
    RewriteRule ^credit-(.*)-(.*)-(.*)\. credit-calcul.php?cap=$1&taux=$2&annee=$3 [L]
    
    (en gros, on se fiche de l'extension...)

    Ne pourrais-tu pas mettre un exemple concret d'un lien qui ne fonctionne pas (en changeant le NDD pour confidentialité)?
     
  3. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 672
    J'aime reçus:
    0
  4. anemone-clown
    anemone-clown WRInaute passionné
    Inscrit:
    11 Novembre 2007
    Messages:
    1 577
    J'aime reçus:
    20
    D'après ce que je peux constater, c'est un problème de préséance dans les règles. L'une est exécutée avant l'autre et empêche la suivante d'être prise en compte.

    Ce que je constate également, c'est l'emploi de l'extension HTM et des règles de réécriture avec des exentions HTML : ça pose un souci si tu mets systématiquement le "$" derrière HTM/HTML. S'embrouiller avec ça, c'est le meilleur moyen d'avoir du duplicate content : choisi ton extension une fois pour toute!

    Envoie-moi ton HTACCESS par MP si tu veux. ;-)

    Autre chose, pour l'extension, dans la mesure où tu en choisis une, opte plutôt en faveur de HTML (ça pourrait éviter des problèmes avec des concurrents mal intentionnés).
     
  5. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 672
    J'aime reçus:
    0
    Oui c'est ça, une règle empêche l'autre de s'exécuter, il me semble avoir essayé de changer leur ordre sans que ca change quoi que ce soit.
    Pour les extensions en effet il y a les deux, c'est que j'ai fait un copier coller sans vérifier :(
    Je t'envoi le htaccess concernant les réécritures, car il y a une centaine de redirectpermanent (par rapport à l'ancien site).
    Pour l'extension, malheureusement c'est trop tard, mais pour les prochains sites je suivrai ton conseil, par rapport aux concurrents, c'est qu'ils peuvent faire du duplicate content c'est ca ? en faisant des backlink vers les pages en mettant html en extension ? N'y a t'il pas un moyen de réécrire les extensions html en htm ?
    Merci beaucoup pour ton aide, j'apprécie vraiment ton partage de connaissance dans ce domaine.
     
  6. anemone-clown
    anemone-clown WRInaute passionné
    Inscrit:
    11 Novembre 2007
    Messages:
    1 577
    J'aime reçus:
    20
    Réessaye avec :
    Code:
    RewriteRule ^credit-([0-9]+)-([0-9]+)-([0-9]+)\. credit-calcul.php?cap=$1&taux=$2&annee=$3 [L]
    
    Mais, je suis presque certain que c'est l'autre qui ne va plus fonctionner... :lol:
     
  7. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 672
    J'aime reçus:
    0
    Non l'autre règle fonctionne toujours par contre, la nouvelle n'est tjs pas prise en compte : erreur 404 quand on veut calculer.
     
  8. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    La page credit-10000 elle est gérée par le CMS (i.e. index.php?page=credit-10000)?

    Dans ce cas, solution simple, tu rajoutes ça avant le reste:
    RewriteRule ^(credit-.+)$ index.php?page=$1 [QSA]

    Et tu déplaces la RewriteRule pour credit-x-y-z juste après celle-là (donc avant les rewritecond et rewriterule).

    Si ce n'est pas ça, c'est qu'il y a une autre règle quelque part...

    Jacques.
     
  9. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 672
    J'aime reçus:
    0
    Merci pour ta réponse Jacques,
    en effet la page credit-100000 est bien gérée par le CMS contrairement à la page credit-calcul.php qui génère le tableau d'amortissement.
    Malheureusement quand je met en place tes préconisations, (cad ta nouvelle règle suivie de la règle credit-x-y-z puis la règle du CMS RewriteRule ^(.+)$ index.php?page=$1 [QSA]) plus aucune page ne s'affiche, que du 404 car j'ai l'impression que la règle du cms n'est plus exécutée.
    Voici le htaccess
    Code:
    #php5.2
    #OVH /!\
    SetEnv REGISTER_GLOBALS 0
    SetEnv PHP_VER 5
    
    Options -Indexes
    ServerSignature Off
    Options +FollowSymLinks
    
    #ErrorDocument 404 http://www.emprunt-et-credit.com/
    
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    
    #Utilise seulement le site avec www
    RewriteCond %{HTTP_HOST} ^emprunt-et-credit.com$
    RewriteRule ^(.*)   http://www.emprunt-et-credit.com/$1  [QSA,L,R=301]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    #RewriteRule ^(credit-.+)$ index.php?page=$1 [QSA]
    #RewriteRule /credit-([0-9]+)-([0-9]+)-([0-9]+)\. credit-calcul.php?cap=$1&taux=$2&annee=$3 [R=301,L]
    
    RewriteRule ^(.+)$ index.php?page=$1 [QSA]
    RewriteRule ^([0-9]*)-(.*).htm$ index.php?mact=News,cntnt01,detail,0&cntnt01articleid=$1&cntnt01origid=&cntnt01returnid=$2
    RewriteRule ^credit-(.*)-(.*)-(.*)\. credit-calcul.php?cap=$1&taux=$2&annee=$3 [L]
    
    #redirection ancien site
    RedirectPermanent /calcul-epargne.php http://www.emprunt-et-credit.com/calcul-epargne.htm
    ....
    ....
    ExpiresDefault "access plus 1 month"
    FileETag none
    
    </IfModule>
    
     
  10. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Les deux règles credit doivent être avant les RewriteCond (les RewriteCond n'affectent que la RewriteRule qui suit immédiatement).

    Evidemment on suppose que tu n'as pas de fichiers/répertoires (réels) qui commencent par credit...

    Jacques.
     
  11. anemone-clown
    anemone-clown WRInaute passionné
    Inscrit:
    11 Novembre 2007
    Messages:
    1 577
    J'aime reçus:
    20
    Il est possible que ce soit le mot credit dans le lien qui pose un souci (interception par le CMS).

    Il faudrait essayer avec (par exemple) :

    Code:
    RewriteRule ^finecheance-([0-9]+)-([0-9]+)-([0-9]+)\. credit-calcul.php?cap=$1&taux=$2&annee=$3 [L]
    
    Et faire un essai en conséquence.
    -http://www.emprunt-et-credit.com/finecheance-100000-3-10.htm


    edit (grillé): @jcaron : par MP, j'ai déjà fait essayé la solution des règles avant la règle générale du index.php... pas de résultat valable. C'est vraisemblabmement le mot credit qui pose souci.
     
  12. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 672
    J'aime reçus:
    0
    Bingo !
    En mettant la règle avant le rewritecond ca fonctionne, mais j'ai dû supprimer la règle que jacques m'a suggéré (RewriteRule ^(credit-.+)$ index.php?page=$1 [QSA])

    Merci vraiment à vous deux pour tout le mal que vous vous êtes donner.
    J'aurais appris quelques trucs sur les règles de réécritures :)
     
  13. bproductiv
    bproductiv WRInaute accro
    Inscrit:
    27 Décembre 2004
    Messages:
    3 672
    J'aime reçus:
    0
    voic donc ce qui fonctionne :
    Code:
    RewriteRule ^credit-(.*)-(.*)-(.*)\. credit-calcul.php?cap=$1&taux=$2&annee=$3 [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule ^(.+)$ index.php?page=$1 [QSA]
    RewriteRule ^([0-9]*)-(.*).htm$ index.php?mact=News,cntnt01,detail,0&cntnt01articleid=$1&cntnt01origid=&cntnt01returnid=$2
     
Chargement...
Similar Threads - problème réécriture cms Forum Date
Problème de réécriture d'url Développement d'un site Web ou d'une appli mobile 27 Février 2014
Problème de syntaxe en réécriture URL Rewriting et .htaccess 23 Octobre 2012
Problème de réécriture d'url. Je vois plus ou chercher URL Rewriting et .htaccess 14 Septembre 2012
Problème de réecriture d'URL .htaccess URL Rewriting et .htaccess 8 Août 2012
Problème de réécriture avec Arfooo URL Rewriting et .htaccess 20 Avril 2012
Problème de réécriture d'url =( URL Rewriting et .htaccess 28 Mars 2012
Problème réécriture et sous-dossiers URL Rewriting et .htaccess 3 Janvier 2012
Problème de réécriture sur un sous-domaine URL Rewriting et .htaccess 15 Septembre 2011
Problème classique de réécriture et de redirection 301 URL Rewriting et .htaccess 13 Avril 2011
Probleme réécriture lien ou.htaccess URL Rewriting et .htaccess 7 Mars 2010
Problème de réecriture d'url en local avec easyphp 3.0 URL Rewriting et .htaccess 29 Mars 2009
Problème de réécriture [RESOLU] URL Rewriting et .htaccess 27 Juin 2008
Problème réécriture URL Rewriting et .htaccess 30 Mai 2008
Problème de réécriture URL Rewriting et .htaccess 30 Novembre 2007
Réécriture d'url, problème Débuter en référencement 14 Novembre 2007
Problème réécriture d'une URL URL Rewriting et .htaccess 27 Juin 2007
Problème de réécriture d'url avec des parmètres URL Rewriting et .htaccess 27 Juin 2007
Problème de réécriture de lien URL Rewriting et .htaccess 7 Mars 2007
Probleme de réecriture URL Rewriting et .htaccess 4 Septembre 2006
problème réécriture de /?p=page en /page URL Rewriting et .htaccess 2 Septembre 2006