| :: |
| Auteur |
Message |
gcvoiron PR1

Inscrit le: 08 Juin 2006 Messages: 120
|
Posté le: Mer Nov 29, 2006 11:12 pm Sujet du message: Reecriture d'URL |
|
|
Bonjour,
J'ai regardé pas mal de tutos sur l'URL REWRITING, je comprends le but mais pas l'utilisation...
Comment réécrire des URL 'site.php?=phphbb' en 'phpbb.php'?
Merci. |
_________________ Gagnez argent et cadeaux avec Internet sur www.benefweb.com |
|
| Revenir en haut de page |
|
 |
|
 |
rogerlebouledogue phpBB SEO Team


Inscrit le: 22 Juil 2006 Messages: 354 Localisation: Belle-Ile (56)
|
Posté le: Jeu Nov 30, 2006 7:50 am Sujet du message: Re: Reecriture d'URL |
|
|
Va falloir attendre dcz pour avoir une vrai expliquation car moi ...
Mais juste une question, pourquoi tu veux faire cette réécriture ?
Ca vient d'où "site.php?=phphbb" ?
Avec un peu plus d'expliquation, je pense que dcz te renseignera ...
@+.  |
_________________ Le forum de Rogerlebouledogue |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15125
|
Posté le: Jeu Nov 30, 2006 9:17 am Sujet du message: Re: Reecriture d'URL |
|
|
En fait la réécriture d'ulr est une technique globale, il n'y a pas de recette définitive, mais des principes à appliquer.
La réécriture d'url se passe en deux étapes :
1) Il faut modifier les liens en sortie :
En reprenant ton exemple, il faudrait que le lien site.php?=phphbb ne soit plus affiché de la sorte sur les pages du site, mais directement phpbb.php (ou phpbb.html). Plusieurs methodes sont possibles pour cela : utilisation du buffer (avec ob_start() ) ou recodage des liens directement.
2) Il faut que cette nouvelle URL qui ne correspond à aucun script fonctionne :
Toujours dans ton exemple, le seul script qui existe physiquement est site.php.
phpbb.php (ou .html) n'existe pas, c'est site.php?=phphbb qui construit la page.
C'est là que le module de réécriture d'url (mod_rewrite sur les serveur apache et isapi_rewrite sur IIS) nous sont utiles.
Grâce à eux, le serveur va être capable de faire correspondre une URL "factice" (n'étant pas directement lié au script capable de la construire) à un script physique en lui passant les variables nécessaires.
L'idée c'est : phpbb.php (ou .html) => site.php?=phphbb
Dans ce cas, la règle n'est pas dynamique, on associerait une URL à un script.
Mais il est aussi possible de faire un truc du genre :
page-xx.html => script.php?var=xx
Pour couvrir d'un coup toutes les URLs du type page-xx.html ou xx serait son ID, comme une ID de topic dans un forum.
Ces règles sont des rewriterules, elle utilisent des expressions régulières pour indiquer au serveur les parties de l'url à faire passer au script, l'ID xx dans notre dernier exemple.
Voilà pour le principe.
Dans la pratique, il y a pratiquement autant de cas que de scripts.
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
gowap phpBB SEO Team


Inscrit le: 07 Mai 2006 Messages: 1008
|
Posté le: Jeu Nov 30, 2006 10:49 pm Sujet du message: Re: Reecriture d'URL |
|
|
| Il me semble qu'il y aurait également la possibilité de tester via RewriteCond si l'url demandée est réellement un fichier physique (parametre -f, non ?) , auquel cas, on ne ferait rien, et sinon, on redirigerait vers site.php?truc=bidule |
_________________ Gravure-News : la communauté francophone de la gravure de CD/DVD et son forum d'entraide. |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15125
|
Posté le: Jeu Nov 30, 2006 11:00 pm Sujet du message: Re: Reecriture d'URL |
|
|
Tout à fait, mais ce n'est utile que s'il y a risque de confusion.
C'est plus utile pour les dossiers virtuels.
Dans notre exemple, si phpbb.php était un fichier physique, la rewriterule prendrait le dessus sans préciser que l'on ne veut pas que le fichier appelé soit physique.
| Code: | | RewriteRule ^cherche.php$ /trouve.html |
Renvois trouve.html (qui doit exister physiquement) que cherche.php existe ou non.
Il n'y a bien entendu pas grand intérêt à conserver un fichier physique du même nom que notre cherche.php
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
gcvoiron PR1

Inscrit le: 08 Juin 2006 Messages: 120
|
Posté le: Jeu Nov 30, 2006 11:47 pm Sujet du message: Re: Reecriture d'URL |
|
|
En fait voilà l'URL que je voudrais rewriter :
| Citation: | | http://www.concours-gratuits-fr.com/site.php?idsite=19 |
Là j'ai selectionné par id (idsite=19) mais je pourrais mettre par nom (idsite=vacancio).
Et j'ai fais plusieurs essais mais en vain... |
_________________ Gagnez argent et cadeaux avec Internet sur www.benefweb.com |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15125
|
Posté le: Dim Déc 03, 2006 12:12 pm Sujet du message: Re: Reecriture d'URL |
|
|
Le truc, c'est que c'est simple et universel de faire correspondre ce que l'on veut dans une rewriterule, mais il faut modifier le code php, et là c'est du cas par cas.
Pour ce que tu veux faire, il faudrait pas mal le modifier. Il faudrait ajouter de quoi passer du titre du site à son ID dans le script, pour réaliser le select.
Dans ton exemple, passer de /site.php?idsite=19 à /site.php?idsite=vacancio
ne relève pas de la réécriture d'url à proprement parler, car cela n'implique pas le mod_rewrite, une modification du script php suffirait.
Le plus simple pour une réécriture serait de simplement injecter le titre du site dans son URL en conservant l'ID :
/site.php?idsite=19 = > vacancio-s19.html
Ou le s servirait à différentier cette redirection des autres (comme les vt, vf et vc dans le cas de phpBB).
La rewriterule associée serait :
| Code: | | RewriteRule ^.+-s([0-9]+)\.html$ /site.php?idsite=$1 [QSA,L] |
Resterait plus qu'en suite à modifier la façon dont sont construit les liens dans ton site, pour sortir /vacancio-s19.html à la place de /site.php?idsite=19.
A voir, ça doit pas être trop compliqué, mais cela dépend de ton script.
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
gcvoiron PR1

Inscrit le: 08 Juin 2006 Messages: 120
|
Posté le: Dim Déc 03, 2006 12:19 pm Sujet du message: Re: Reecriture d'URL |
|
|
Bonjour dcz,
En fait j'ai fais mon site moi même, partie php comprise.
J'ai une zone "admin", où je peux rajouter/modifier/supprimer mes concours. Quand je rajoutte un concours je précise nom, description [...] et le nom rewrité que je veux lui donner. Par exemple pour un concours "phpbb Seo", le nom rewrité serait "phpbb-seo". Et pour les liens de mes pages, j'ai mis qu'ils soient sous forme site.php?idsite=XX, mais je peux les modifier en site.php?idsite=nomrewrité.
Voilà, voilà.
PS : Je pense que ce n'est pas le plus simple d'indiquer moi même le nomrewrité, mais je n'ai pas compris comment faire autrement. |
_________________ Gagnez argent et cadeaux avec Internet sur www.benefweb.com |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15125
|
Posté le: Dim Déc 03, 2006 4:15 pm Sujet du message: Re: Reecriture d'URL |
|
|
Et bien c'est parfait tout ça.
La méthode que je propose doit être très simple à mettre en place si tu connais bien le script.
Tu remplaces les liens (qui si ça se trouve sont tous construis à un seul endroit du script) de la forme :
| Code: | | "site.php?idsite=$idsite" |
en :
| Code: | | "$titre_rewrite-s$idsite.html" |
Directement à l'endroit où ils sont construits, et tu utilises cette RewriteRule :
| Code: | | RewriteRule ^.+-s([0-9]+)\.html$ /site.php?idsite=$1 [QSA,L] |
Dans ton .htaccess, simplement avant les règles du forum du coup.
Et hop
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
gcvoiron PR1

Inscrit le: 08 Juin 2006 Messages: 120
|
Posté le: Dim Déc 03, 2006 4:56 pm Sujet du message: Re: Reecriture d'URL |
|
|
Merci dcz, mais je t'ai dis une erreur :
J'utilise principalement ce code pour afficher les liens :
| Code: | | <td class="table" align="center"><a href="../site.php?idsite='.$listeconcours[$i][idsite].'">Fiche détaillée</a></td> |
|
_________________ Gagnez argent et cadeaux avec Internet sur www.benefweb.com |
|
| Revenir en haut de page |
|
 |
gcvoiron PR1

Inscrit le: 08 Juin 2006 Messages: 120
|
Posté le: Dim Déc 03, 2006 4:58 pm Sujet du message: Re: Reecriture d'URL |
|
|
Et j'utilise aussi :
| Code: | | <a href="site.php?idsite=<?php echo $idsite; ?>"><?php echo $nomsite; ?></a> |
|
_________________ Gagnez argent et cadeaux avec Internet sur www.benefweb.com |
|
| Revenir en haut de page |
|
 |
gcvoiron PR1

Inscrit le: 08 Juin 2006 Messages: 120
|
Posté le: Dim Déc 03, 2006 5:03 pm Sujet du message: Re: Reecriture d'URL |
|
|
C'est bon, j'y suis arrivé en mettant ceci comme code :
| Code: | | <td class="table" align="center"><a href="'.$listeconcours[$i][nomrewrit].'-s'.$listeconcours[$i][idsite].'.html">Fiche détaillée</a></td> |
Merci beaucoup dcz pour toute cette aide! |
_________________ Gagnez argent et cadeaux avec Internet sur www.benefweb.com |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15125
|
|
| Revenir en haut de page |
|
 |
gcvoiron PR1

Inscrit le: 08 Juin 2006 Messages: 120
|
Posté le: Dim Déc 03, 2006 5:12 pm Sujet du message: Re: Reecriture d'URL |
|
|
Oui, j'ai trouvé!
Merci encore.
 |
_________________ Gagnez argent et cadeaux avec Internet sur www.benefweb.com |
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15125
|
|
| Revenir en haut de page |
|
 |
|
|