|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
Bonjour,
Pour ma page acces.php, j'aimerais transformer mes get en "dossier" et supprimer acces.php de l'url. Exemple: Transformer: acces.php?cat=images&titre=faire-ce-truc-avec-des-images En: images/faire-ce-truc-avec-des-images Voici le code essayé: Code :
RewriteRule ([a-z]+)/([a-z0-9-]+) acces.php?cat=$1&titre=$2 Je ne vois pas le probleme. Merci pour votre aide |
|
|
01
|
|
|
#2 |
![]() ![]() Inscription : août 2005 Messages : 8 285 ![]() |
C'est juste que ton filtre (premier paramètre de RewriteRule) est trop générique. Il faut juste mettre un filtre plus précis. Par exemple :
Code :
RewriteRule ^acces/([a-z]+)/([a-z0-9-]+) acces.php?cat=$1&titre=$2
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
Merci pour ta réponse
Le probleme est que je voudrais une url de ce type: http://xxx.com/images/faire-ce-truc-avec-des-images Est-ce possible? J'ai essayé: Code :
/([a-z]+)/([a-z0-9-]+) acces.php?cat=$1&titre=$2 Code :
^/([a-z]+)/([a-z0-9-]+) acces.php?cat=$1&titre=$2 |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2005 Messages : 8 285 ![]() |
On me peut pas mettre de ^/ au début dans un .htaccess ; s'il n'y en avait pas dans mon exemple, c'était volontaire. Une règle comme celle-ci dans un .htaccess ne marchera jamais :
Code :
RewriteRule ^/([a-z]+)/([a-z0-9-]+) acces.php?cat=$1&titre=$2 Code :
RewriteRule /([a-z]+)/([a-z0-9-]+) acces.php?cat=$1&titre=$2 Code :
RewriteRule ^images/([a-z0-9-]+) acces.php?cat=images&titre=$2 Code :
RewriteRule ^([a-z]+)/([a-z0-9-]+) acces.php?cat=images&titre=$2
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
Je vois bien le probleme mais la catégorie et le titre changent à chaque page. Donc
Code :
RewriteRule ^images/([a-z0-9-]+) acces.php?cat=images&titre=$2 Exemple: l'url peut devenir "nomdusite.com/php/faire-ca-en-php" ou "nomdusite.com/images/faire-ce-truc-avec-des-images". J'espère que j'explique bien Merci pour tes réponses |
|
|
00
|
|
|
#6 | ||
![]() ![]() Inscription : août 2005 Messages : 8 285 ![]() |
Je comprends bien mais les possibilités sont limitées.
Est-ce que cette règle marche mieux ? Code :
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
||
|
|
00
|
|
|
#7 | ||||
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
Cela semble bien mieux marcher, apparemment les autres pages n'ont plus l'interface de acces.php.
J'ai changé le code: Code :
Code :
Au fait je souhaite réécrire l'url pour la simplifier, rien de plus. Donc toutes les url passant par acces.php doivent se réécrire comme je l'ai indiqué ci-dessus. Le but est qu'en donnant: nomdusite.com/php/faire-ca-en-php, le traitement se fasse par acces.php?cat=php&titre=faire-ca-en-php. Pourquoi améliore le code? Quel est son rôle? Merci pour ton aide, j'étais bien bloqué |
||||
|
|
00
|
|
|
#8 | |
![]() ![]() Inscription : août 2005 Messages : 8 285 ![]() |
En effet
Citation:
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
D'accord donc si je comprends bien, avant la règle réécrivait tout, même les pages n'ayant pas acces.php dans l'url, là avec on vérifie si le fichier n'existe pas avant et donc on ne réécrit pas l'url?
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : août 2005 Messages : 8 285 ![]() |
C'est bien ça.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
Ok merci
Est-ce que je peux reprendre ce code pour rajouter une règle pour une page telechargement.php? Faire: Code :
Est-ce que ça marche ou je n'ai pas bien compris. Merci pour ton aide |
||
|
|
00
|
|
|
#12 | ||
![]() ![]() Inscription : août 2005 Messages : 8 285 ![]() |
Ca marchera mais à condition de mettre la règle sur telechargement.php avant la règle sur acces.php car le filtre sur telechargement est incluse dans celle de acces, et comme Apache exécute les règles dans l'ordre du fichier, ce sera acces.php qui sera toujours activé. Je te conseille également de mettre le flag [L] pour limiter au maximum les effets de bord.
Ca donnne ceci : Code :
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
||
|
|
00
|
|
|
#13 | ||||
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
Merci pour la modif et pour l'explication
Par contre je ne comprends toujours pas pourquoi toutes les pages sont touchées lors de: Code :
RewriteRule ^([a-z]+)/([a-z0-9-]+) acces.php?cat=$1&titre=$2 Pour la correction que tu m'as proposé, faut-il que je mette: tout en haut? Donc: Code :
Code :
Merci |
||||
|
|
01
|
|
|
#14 |
![]() ![]() Inscription : août 2005 Messages : 8 285 ![]() |
Essayer ce que j'ai suggéré ne suffit pas ? As-tu au moins essayé ? Pourquoi veux-tu que j'écrive quelque chose qui ne serait pas dans le bon ordre ? Je maintiens la configuration que je donne.
Pour la première question sur le filtre, je ne peux que t'encourager à relire la discussion depuis le début : un filtre ^([a-z]+)/([a-z0-9-]+) est trop large (i.e. fonctionne pour autre chose que les pages que tu veux rediriger vers acces.php), c'est pour ça qu'on a ajouté une condition.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 75 ![]() |
Oula je posais seulement une question pas de quoi s'emballer comme ça...
Pour acces.php il y avait besoin alors pourquoi pas là (maintenant j'ai compris pour l'histoire du filtre trop large). Je mets en résolu et pas d'inquiétude je ne reviendrais plus poser de questions. Merci toutefois pour ton aide et tes explications. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com