Question simple sur des rewrite rules dynamiques

Discussion dans 'URL Rewriting et .htaccess' créé par freerider, 22 Mai 2006.

  1. freerider
    freerider Nouveau WRInaute
    Inscrit:
    13 Décembre 2005
    Messages:
    10
    J'aime reçus:
    0
    Bonjour à tous,

    Le but de ma question n'est pas de rentrer dans les détails des expressions régulières.
    J'aimerais pouvoir gérer dynamiquement les rewrite rules.
    Des rewrite rules simples poseraient assez vite des problèmes.

    Ex:
    http://www.monsite/main.php?&lang=fr&le ... level2=web
    URL publique:
    http://www.monsite/fr/news/web

    les rewrite rules --> remplacer:

    /fr/ --> /main.php?&lang=fr/
    /news/ --> &level1=news
    /web --> &level=web

    http://www.monsite/main.php?&lang=fr&le ... evel2=news
    URL publique:
    http://www.monsite/fr/videos/news/

    On a déjà un conflit avec les règles précédentes, car /news/ ne doit pas être remplacé de la même manière dans les deux cas.

    La solution sera alors d'être moins unitaire sur les rewrite rules et définir des règles du genre:

    remplacer /videos/news par &level1=videos&level2=news

    Mais du coup, on a une règle par niveau du site et je ne suis pas sûre que ce soit intéressant au niveau performance.

    Pouvez-vous me dire ce que vous en penser et me donner des conseilles dur la gestion dynamique des rewrite rules pour des gros sites portails?

    Merci.
     
  2. magic corp.
    magic corp. WRInaute occasionnel
    Inscrit:
    17 Juin 2004
    Messages:
    395
    J'aime reçus:
    0
    Salut

    Et une structure comme ça ne fonctionnerait elle pas ?
    Code:
    etc...
    rewriterule ^/(.+)/(.+)/(.+)/(.+)/(.+) /main.php?lang=$1&level1=$2&level2=$3&level3=$4&level4=$5 [L]
    rewriterule ^/(.+)/(.+)/(.+)/(.+) /main.php?lang=$1&level1=$2&level2=$3&level3=$4 [L]
    rewriterule ^/(.+)/(.+)/(.+) /main.php?lang=$1&level1=$2&level2=$3 [L]
    rewriterule ^/(.+)/(.+) /main.php?lang=$1&level1=$2 [L]
    Car à ma connaissance, il n'est pas possible de gérer dynamiquement les règle ... ou du moins simplement. A moins que j'aye mal compris ta question. :?

    Maintenant je ne connais pas la structure exacte de ton site, il se peut donc que mon idée rentre en conflis avec d'autre page.

    ... Ou alors une règle genérique style
    rewriterule ^/.+ /main.php
    et tu te débrouille dans ton code PHP pour décomposé ton arrborécence fournis par la variable $HTTP_GET_VARS['REQUEST_URI']

    A voir.
     
  3. freerider
    freerider Nouveau WRInaute
    Inscrit:
    13 Décembre 2005
    Messages:
    10
    J'aime reçus:
    0
    Merci magic corp.
    Ca règle le problème que j'ai énoncé, mais j'en ai d'autres. :)

    Si mes URLs contiennent dans la query string à la fois des paramètres qui servent à identifier le level et des paramètres propres à une page bien spécifique, comment les différencier?

    Considérons l'arborescence suivante:

    home
    news
    --actualité nationale
    --actualité internationale
    ----europe
    ----reste du monde
    forum

    Dans mon CMS, chaque level identifie un fichier PHP.
    ex: home.php, new.php,actualite_nationale.php, ...
    Ces fichiers PHP peuvent aussi avoir des paramètres.

    Ex:

    http://www.monsite/main.php?&lang=fr&le ... liste=paul
    URL publique:
    http://www.monsite/fr/news/actualite-na ... liste/paul

    level1=news&level2=actualite-nationale --> identifie le fichier PHP
    filter=journaliste&journaliste=paul --> paramètres du fichier PHP

    La question, comment savoir que journaliste et paul sont des paramètres du fichier et pas des levels?

    La seule solution que je vois à ça est de mettre les règles en dure pour chaque level, ce qui permettra d'identifier le fichier PHP.
    Une fois qu'on a le fichier, on lui passe le reste de l'URL en vrac et le fichier se débrouille ( ?reste_de_l_URL=/journaliste/paul dans notre exemple). Solution énoncé par magic corp aussi.

    Mais le problème est qu'on va devoir reconvertir les chiffres car ils seront considérés comme une string.

    Y-a-t'il d'autres solutions?
     
  4. freerider
    freerider Nouveau WRInaute
    Inscrit:
    13 Décembre 2005
    Messages:
    10
    J'aime reçus:
    0
    Le long URL avec les ...
    monsite/main.php?&lang=fr&level1=news&level2=actualite-nationale&filter=journaliste&journaliste=paul
     
  5. magic corp.
    magic corp. WRInaute occasionnel
    Inscrit:
    17 Juin 2004
    Messages:
    395
    J'aime reçus:
    0
    :D Ca se complique ... Je tenterais :
    Code:
    rewriterule /(.+)/journaliste/(.+)$ /$1?filter=journaliste&journaliste=$2
    
    rewriterule ^/(.+)/(.+)/(.+)/(.+)/(.+) /main.php?lang=$1&level1=$2&level2=$3&level3=$4&level4=$5 [QSA, L]
    rewriterule ^/(.+)/(.+)/(.+)/(.+) /main.php?lang=$1&level1=$2&level2=$3&level3=$4 [QSA, L]
    rewriterule ^/(.+)/(.+)/(.+) /main.php?lang=$1&level1=$2&level2=$3 [QSA, L]
    rewriterule ^/(.+)/(.+) /main.php?lang=$1&level1=$2 [QSA, L]
    Ce qui devrais convertir :

    h**p://www.example.com/fr/news/actualite-nationale/journaliste/paul
    en
    h**p://www.example.com/fr/news/actualite-nationale?filter=journaliste&journaliste=paul

    Et comme cette règle n'a pas de flag [L] on continue dans les règles du dessous et on suis le cheminement standard de gestion des catégorie.

    Soit pour l'exemple sité, cette règle rewriterule ^/(.+)/(.+)/(.+) /main.php?lang=$1&level1=$2&level2=$3 [QSA, L]

    Et on devrait retomber sur nos pattes ... à vérifier :?
     
  6. freerider
    freerider Nouveau WRInaute
    Inscrit:
    13 Décembre 2005
    Messages:
    10
    J'aime reçus:
    0
    J'ai finalement laisser tomber l'idée de gérer complètement les rewrite rules de manière dynamique au niveau de mon CMS. C'est presque impossible car il faut descendre jusqu'au niveau des VALEURS des paramètres (journaliste, paul dans l'exemple ci-dessus) pour pouvoir tout gérer.
    Merci à tous et particulièrement à magic corp.
    Bon référcement à tous.
     
Chargement...
Similar Threads - simple rewrite rules Forum Date
aide Rewriterule simple Netlinking, backlinks, liens et redirections 11 Janvier 2010
[online.net] rewrite rule simple entraîne erreur 500 URL Rewriting et .htaccess 26 Avril 2009
Faire un rewrite url simple URL Rewriting et .htaccess 7 Avril 2006
Rewriterule simple mais ... URL Rewriting et .htaccess 3 Septembre 2005
Rewrite tout simple URL Rewriting et .htaccess 1 Février 2005
Votre aide pour rewriter url simple, merci URL Rewriting et .htaccess 14 Novembre 2004
actualiser régulièrement le site n'est pas simple Débuter en référencement 10 Juin 2022
Le simple affichage de ma page déclenche les événements onClick... Merci Google Analytics 17 Mai 2022
Quelle CMP vraiment simple pour être conforme au RGPD ? Administration d'un site Web 14 Mars 2022
Tout simplement à la recherche de conseils... Débuter en référencement 13 Novembre 2021
Apprendre à utiliser Google Ad Manager simplement Monétisation d'un site web 4 Juillet 2021
Référencement longe traîne vs. mots clé simple ? Référencement Google 25 Avril 2020
WordPress Créer un sitemap simple pour Google Débuter en référencement 9 Mars 2020
Google rachète CloudSimple Google : l'entreprise, les sites web, les services 19 Novembre 2019
Quel type de logiciel utiliser pour créer un site web simple et performant ? Demandes d'avis et de conseils sur vos sites 14 Octobre 2019
Supression de really simple ssl Netlinking, backlinks, liens et redirections 26 Septembre 2019
Logiciel de montage vidéo très simple ? Le café de WebRankInfo 12 Août 2019
Parser un fichier xml : simplexml_load_file Développement d'un site Web ou d'une appli mobile 5 Avril 2019
Réecriture simple qui ne fonctionne pas URL Rewriting et .htaccess 20 Février 2019
Recherche script simple avis Administration d'un site Web 23 Mai 2018