Un petit exemple de rewriteRules avec un ptit trick :-)

Discussion dans 'URL Rewriting et .htaccess' créé par Superbaloo, 11 Mars 2007.

  1. Superbaloo
    Superbaloo Nouveau WRInaute
    Inscrit:
    11 Mars 2007
    Messages:
    18
    J'aime reçus:
    0
    Bonjour a tous,

    Voila je voulais proposer un petit exemple de rewrite rules que j'utilise sur un de mes sites.

    Code:
    RewriteRule ^([(a-zA-Z]+)/([a-zA-Z0-9]+)/([0-9]+)/ /index.php?mod=$1&cat=$2&id=$3 [L]
    
    RewriteRule ^([(a-zA-Z]+)/([a-zA-Z0-9]+)/p([0-9]+)/ /index.php?mod=$1&cat=$2&page=$3 [L]
    
    RewriteRule ^([(a-zA-Z]+)/([a-zA-Z0-9]+)/ /index.php?mod=$1&cat=$2 [L]
    
    RewriteRule ^([(a-zA-Z]+)/ /index.php?mod=$1 [L]
    Ceci me permet d'obtenir des url assez propres du type http://url/module/categorie/id/ (categorie et id sont ici optionnels)

    Je trouve cela assez propre personnellement.

    Seulement voila, apres application je me suis appercu que tout mes sous-repertoires faisaient un "match" sur la rewriteRule. Mes images dans http://url/image/ n'etaient donc plus accessible.

    Alors voila, apres un peu de lecture de la documentation apache j'ai trouver ca
    Code:
    RewriteCond /path/%{REQUEST_URI} !-f
    
    Alors voila pour la petite explication, ici /path represente le document_root, l'instruction %{REQUEST_URI} contient /images/example.png lorsque vous appellez http://url/images/example.png. Ensuite le !-f, ici le -f sert pour verifier que le fichier existe, ou pas. Si il existe alors la rewriteRules qui suit est executee sinon ... elle ne l'est pas. Ici c'est exactement le schema inverse que je souhaitais donc j'ai rajouter le signe ! qui symbolise la negation :)

    Pour obtenir un truc legerement plus pratique a utilise, j'utilise
    Code:
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
    
    Le code final de mes regles de rewrite est donc
    Code:
    RewriteEngine on
    
    
    
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
    
    RewriteRule ^([(a-zA-Z]+)/([a-zA-Z0-9]+)/([0-9]+)/ /index.php?mod=$1&cat=$2&id=$3 [L]
    
    
    
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
    
    RewriteRule ^([(a-zA-Z]+)/([a-zA-Z0-9]+)/p([0-9]+)/ /index.php?mod=$1&cat=$2&page=$3 [L]
    
    
    
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
    
    RewriteRule ^([(a-zA-Z]+)/([a-zA-Z0-9]+)/ /index.php?mod=$1&cat=$2 [L]
    
    
    
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
    
    RewriteRule ^([(a-zA-Z]+)/ /index.php?mod=$1 [L]
    Voila :)

    J'espere avoir ete assez clair pour pouvoir me faire comprendre, je suis desole si le post est redondant mais cela ne semble pas etre le cas.

    Bonne continuation :)
     
  2. honolulu
    honolulu WRInaute impliqué
    Inscrit:
    8 Novembre 2005
    Messages:
    746
    J'aime reçus:
    0
    C'est gentil de ta part de partager ton savoir, merci à toi :wink:
     
  3. theJB
    theJB WRInaute occasionnel
    Inscrit:
    7 Avril 2006
    Messages:
    372
    J'aime reçus:
    0
    super utile, ça faisait un bail que je cherchais à resoudre ce pb sur mon site, merci !
     
  4. samuel
    samuel WRInaute discret
    Inscrit:
    17 Octobre 2003
    Messages:
    130
    J'aime reçus:
    0
    excellent! merci et c'est bien complet :)
     
  5. Superbaloo
    Superbaloo Nouveau WRInaute
    Inscrit:
    11 Mars 2007
    Messages:
    18
    J'aime reçus:
    0
    merci a vous trois :)
     
  6. Gralon
    Gralon WRInaute impliqué
    Inscrit:
    2 Novembre 2002
    Messages:
    516
    J'aime reçus:
    1
    Bien, mais à éviter sur un site/serveur très visité.

    Déjà que le rewrite ajoute pas mal de charge, le fait de vérifier la présence du fichier alourdi considérablement l'ensemble.
     
  7. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    82
    D'accord, mais c'est interressant comme conditionel et tout ce que ca peut apporter... Une question: mettre le .htaccess dans le dossier cible ne suffit-il pas a ne pas avoir ce probleme d'acces aux sous dossiers ?
     
  8. Superbaloo
    Superbaloo Nouveau WRInaute
    Inscrit:
    11 Mars 2007
    Messages:
    18
    J'aime reçus:
    0
    J'en doute :-/
     
  9. Superbaloo
    Superbaloo Nouveau WRInaute
    Inscrit:
    11 Mars 2007
    Messages:
    18
    J'aime reçus:
    0
    Hum, le fait qu'il verifie la presence du fichier ... je sais pas ... les acces fichiers unix sont tout de meme extremement rapide hein. Bon c'est vrai que ca alourdi mais bon ... le but recherche est une meilleure indexation par les moteurs de recherche, apres tout est histoire de peser le pour et le contre :).

    Enfin bon ... ta remarque reste pertinente meme si je l'utilise sur des plutot gros site (8 millions de pages vues par mois) et que ca ne semble pas poser de probleme.
     
  10. gringo
    gringo Nouveau WRInaute
    Inscrit:
    12 Mars 2007
    Messages:
    16
    J'aime reçus:
    0
    Salut à tous!

    C'est excellent ca.

    Je vais surêment l'adopter pour mon site.
    J'avais fait autrement mais c'est bien mieux ave cette méthode.

    Bonne soirée
     
  11. mikl194
    mikl194 Nouveau WRInaute
    Inscrit:
    26 Décembre 2006
    Messages:
    17
    J'aime reçus:
    0
    Bonjour,

    J'etais en train de cherché exactement ce type de réécriture d'url pour sites web, mais je mettais orienter vers le path info. En tout cas, le résultat est le plus important, merci de nous transmettre tes recherches. :p


    Par contre, je viens de tester, mais ca ne marche pas... Enfin peut etre que je ne sais pas l'utiliser...

    Voici ma réécriture :

    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -f
    RewriteRule ^(.+)/ /index.php?main=$1 [L]

    Ma page d'accueil du site est ici (le site est en cours de construction), et les liens du menu en dessous du logo utilisent cette réécriture et... Erreur 404 !

    Si quelqu'un pourrait me donner un petit coup de main, ce serait sympa !
     
  12. Superbaloo
    Superbaloo Nouveau WRInaute
    Inscrit:
    11 Mars 2007
    Messages:
    18
    J'aime reçus:
    0
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -f
    RewriteRule ^([^/]+)/ /index.php?main=$1 [L]


    essaye ca ou

    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -f
    RewriteRule ^([^\/]+)/ /index.php?main=$1 [L]

    Mais a priori ca devrait etre la premiere :)
     
  13. mikl194
    mikl194 Nouveau WRInaute
    Inscrit:
    26 Décembre 2006
    Messages:
    17
    J'aime reçus:
    0
    Je viens de comprendre que la n'est pas le probleme, avec les trois possibilités, la redirection génére une erreur 404. Par contre, en jouant un peu avec les url, jai remarqué que :

    - pour une url existante, qui est censé marcher, comme http://www.memocamfrance.com/concept_memocam, l'erreur 404 est directement affiché !

    - pour une url ou le fichier à inclure n'existe pas, par exemple pour http://www.memocamfrance.com/concept_mekjbukb, il m'affiche le site, avec l'erreur que je genere moi dans mon code, du faites que la page demandé n'existe pas.

    Bizarre, non ???
     
  14. datch
    datch WRInaute impliqué
    Inscrit:
    16 Juin 2006
    Messages:
    895
    J'aime reçus:
    1
    merci pour ce topic

    mais j'ai un peu du mal a comprendre, purrais tu me faire un exemple si ca te dérange pas.

    RewriteRule ^([(a-zA-Z]+)/([a-zA-Z0-9]+)/([0-9]+)/ /index2.php?inc=page2&cat1=programme&cat2=bureautique&log=Excel [L]

    merci d'avance.
     
  15. Gralon
    Gralon WRInaute impliqué
    Inscrit:
    2 Novembre 2002
    Messages:
    516
    J'aime reçus:
    1
    Je ne désaprouve pas cette technique, j'utilise le "rewriting" depuis très longtemps.
    C'est juste une constatation générale sur le fait que ça "alourdi" considérablement les process httpd en mémoire.

    Mais avec les serveurs actuels ce n'est plus un problème (ça l'était réellement il y a quelques années).
     
  16. datch
    datch WRInaute impliqué
    Inscrit:
    16 Juin 2006
    Messages:
    895
    J'aime reçus:
    1
    quelqu'un pourrai me donner un coup de main svp pour mettre en place
    ces lignes svp!!!!

    Content de voir que gralon fait aussi parti de wri, bravo pour ton annuaire et content de savoir que tu es un niçois.

    petite question l'annuaire cote.dazur.fr c'est aussi ton annuaire???
     
  17. AW
    AW WRInaute passionné
    Inscrit:
    31 Mai 2005
    Messages:
    1 647
    J'aime reçus:
    1
    Moi j'utilise cette condition là pour exclure certains repertoires:
    RewriteCond %{REQUEST_URI} !^.*(rep1|re2|style|images).*$ [NC]

    Si il n'y a pas trop de repertoires je pense que c'est facilement gérable ainsi, par contre je ne sais pas si c'est plus ou moins rapide que vérifier la présence du fichier. Si un spécialiste pouvait me donner son avis
     
  18. Gralon
    Gralon WRInaute impliqué
    Inscrit:
    2 Novembre 2002
    Messages:
    516
    J'aime reçus:
    1
    J'ai travaillé pour la société à qui appartient cote.azur.fr (et federal-hotel.com) jusqu'en novembre 2006, j'ai fait 90% du dev et des idées et 100% du référencement.
    Maintenant je suis passé à d'autres choses et pleins de nouveaux projets
    8)

    ps : c hors sujet, donc MP si tu as besoin de + d'infos
     
Chargement...
Similar Threads - exemple rewriteRules ptit Forum Date
Exemple site blackhat non sanctionné Netlinking, backlinks, liens et redirections 27 Juin 2019
Exemple qu'il (ne) faut (pas) suivre ? Référencement Google 27 Septembre 2018
Mélange Majuscule/min sur un mot-clé dans balise title ou texte, exemple : MonLogicielImmo Débuter en référencement 8 Juin 2017
Comment citer sans être un doublon ? Exemple de Lorem ipsum Débuter en référencement 5 Avril 2017
Htaccess : Comment rediriger vers /blog/index.php/exemple-article/ ? URL Rewriting et .htaccess 26 Février 2016
Impact référencement sur texte qui se déploie ou non (exemple "lire la suite") Débuter en référencement 14 Avril 2015
Nom de domaine: exemple-google.be - Risque t'on des ennuis juridique? Droit du web (juridique, fiscalité...) 12 Février 2015
Redirection en /to-exemple.fr ? Référencement Google 16 Octobre 2014
L'extrait d'articles originaux sur mon site : l'exemple Fdesouche Droit du web (juridique, fiscalité...) 22 Août 2014
Ces exemples sont-ils des liens pour google ? Netlinking, backlinks, liens et redirections 4 Juillet 2014
Exemple concret de bon backlink Netlinking, backlinks, liens et redirections 29 Mai 2014
Exemple d'ancre venant d'annuaires à supprimer ou désavouer ? Netlinking, backlinks, liens et redirections 10 Mars 2014
Exemple de pénalité sur un mot clé, et levée Référencement Google 26 Janvier 2014
Google me propose qu'un seul exemple de lien factice, bonne nouvelle? Problèmes de référencement spécifiques à vos sites 19 Novembre 2013
Faut-il référencer des images dupliquées ? exemple fotolia Référencement Google 13 Novembre 2013
L'exemple Comment Ca Marche [netlinking sites multilingues] Référencement international (langues, pays) 28 Août 2013
Liste des pénalités manuelles Google et exemples de liens factices Référencement Google 9 Août 2013
Mauvais exemples référencement Rédaction web et référencement 10 Avril 2013
Des exemples de liens factices fournis par Google ? Netlinking, backlinks, liens et redirections 7 Avril 2013
Exemple d'utilisation des objet php avec un site de cuisine Développement d'un site Web ou d'une appli mobile 31 Janvier 2013