[RESOLU]Url Rewriting

Url Rewriting [RESOLU] - PHP - Programmation

Marsh Posté le 26-02-2007 à 18:56:14    

[:simchevelu]  
Bonjour,
je suis en train de monter un petit script php pour lister toutes les images d'un dossier donné. Donc je met mon script dans un dossier appelé serie et je compte faire plusieurs dossiers dans ce dossier série dans lesquels je vais mettre mes photos.
Architecture du dossier:
-serie : contient index.php qui est le script qui récupère les images et les affiches
   - série1 (contient des photos)
   - série2
   - série3
   - série4
   - ...
 
Pour dire que je veux sélectionner la série 1 , je dis mets comme url : serie/index.php?do=serie1
Jusque là ça marche. Mais, j'aimerais avoir des url plus propres du genre : serie/serie1 .  
J'ai essayer des trucs en url rewriting mais à chaque fois j'ai une erreur 403 quand je vais sur la page serie/serie1 .  
Comment puis-je faire


Message édité par Mdkart le 27-02-2007 à 12:40:32
Reply

Marsh Posté le 26-02-2007 à 18:56:14   

Reply

Marsh Posté le 26-02-2007 à 22:58:08    

Balance ton htaccess pour voir ce qui foire

Reply

Marsh Posté le 27-02-2007 à 09:38:27    

tu peux aussi regarader tes logs d'erreurs et ainsi constater comment a été réécrite l'url et donc en déduire tes erreurs

Reply

Marsh Posté le 27-02-2007 à 09:42:21    

Voilà mon htaccess dans le dossier serie :

Code :
  1. RewriteEngine on
  2. Options +FollowSymlinks
  3. RewriteRule ^(-[a-z]*)/$ index.php?do=$1 [L]


Message édité par Mdkart le 27-02-2007 à 09:58:58
Reply

Marsh Posté le 27-02-2007 à 10:04:36    

J'ai cherché dans mes logs mais je ne trouve pas de rewrite.log (je suis chez 1&1 si ça peut aider)

Reply

Marsh Posté le 27-02-2007 à 10:48:50    

et pourquoi pas serie-1.html par exemple ?  
avec un .htaccess du genre
 

Code :
  1. RewriteEngine on
  2. Options +FollowSymlinks
  3. RewriteRule ^serie-([0-9]+)\.html/$   index.php?do=$1 [QSA, L]

Reply

Marsh Posté le 27-02-2007 à 10:55:29    

En fait après ?do= je n'ai pas un chiffre mais un nom de dossier par exemple "serie1" qui pourrait être aussi par exemple "carnaval-2007". Et là je viens d'essayer mais ça ne marche pas.
Un truc comme serie1.php (carnaval-2007) me conviendrait parfaitement.

Reply

Marsh Posté le 27-02-2007 à 11:04:25    

Essaie un truc du style :
RewriteRule ^([^-]*)-([0-9]+)\.html$ $1/index.php?do=$2 [L]

Message cité 1 fois
Message édité par sielfried le 27-02-2007 à 11:04:37

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 27-02-2007 à 11:05:25    

dans ce cas la tu es obligé de faire une rules par nom de dossier...
 
il serait préférable de stocker le nom de dossier dans un fichier ou une BDD, et de ne passer par argument qu'un numéro de ligne.. c'est beaucoup plus facile à gérer.

Reply

Marsh Posté le 27-02-2007 à 11:15:22    

sielfried a écrit :

Essaie un truc du style :
RewriteRule ^([^-]*)-([0-9]+)\.html$ $1/index.php?do=$2 [L]


Non plus erreur 500  :cry:  
 

chani_t a écrit :

dans ce cas la tu es obligé de faire une rules par nom de dossier...
 
il serait préférable de stocker le nom de dossier dans un fichier ou une BDD, et de ne passer par argument qu'un numéro de ligne.. c'est beaucoup plus facile à gérer.


Oui mais ça complique mon script, en fait l'intérêt de mon script c'est qu'il n'y a qu'à créer un dossier et à glisser les photos dedans pour quelle soient reconnues. Si je dois à chasue fois modifier un fichier en plus il n'y a plus trop d'intérêt.
 
 
En fait, je ne sais pas si vous comprenez ce que je veux faire exactement car ce que je dis n'est pas très clair :
Je voudrais que  
http://mdkart.fr/serie/index.php?do=vacance-2006 soit remplacé par http://mdkart.fr/serie/vacance-2006.php ou bien http://mdkart.fr/serie/vacance-2006/ afin de rendre mes urls plus propres
Bien sûr vacance-2006 peut être remplacé par tout autre châine de caractère.

Reply

Marsh Posté le 27-02-2007 à 11:15:22   

Reply

Marsh Posté le 27-02-2007 à 11:26:45    

ok... dans ce cas là c'est plus facile ;)
 
 RewriteRule ([a-z]+)\/photos.html$ /index.php?do=$1 [L]

Reply

Marsh Posté le 27-02-2007 à 11:29:40    

Et donc là je devrais accéder avec l'url
http://mdkart.fr/serie/vacance-2006/photos.html , c'est bien ça?


Message édité par Mdkart le 27-02-2007 à 11:32:35
Reply

Marsh Posté le 27-02-2007 à 11:33:32    

normalement si je ne me suis pas trompé (ce qui n'est pas gagné :D)

Reply

Marsh Posté le 27-02-2007 à 11:36:32    

Donc revoilà le htaccess :  

Code :
  1. RewriteEngine on
  2. Options +FollowSymlinks
  3. RewriteRule ([a-z]+)\/photos.html$ /index.php?do=$1 [L]


 
Tu peux tester : on peut accéder à  
http://mdkart.fr/serie/index.php?do=vacance-2006 mais pas à http://mdkart.fr/serie/vacance-2006/photos.html   :sweat:

Reply

Marsh Posté le 27-02-2007 à 11:40:37    

RewriteRule ([a-z]+)/photos.html$ /index.php?do=$1 [L] test ça ;)

Reply

Marsh Posté le 27-02-2007 à 11:42:59    

Toujours pas ça

Reply

Marsh Posté le 27-02-2007 à 11:53:49    

RewriteRule ^([a-z]+)/photos.html$ /index.php?do=$1 [L] test ça ;) 2 le retour :D

Reply

Marsh Posté le 27-02-2007 à 11:57:59    

Je te remercie de ta patience mais ça ne marche toujours pas  [:sisicaivrai]

Reply

Marsh Posté le 27-02-2007 à 12:00:14    

ra.... on va y arriver..... :D
 
RewriteRule ^([a-zA-Z0-9-]+)/photos\.html$ /index.php?do=$1 [L]

Reply

Marsh Posté le 27-02-2007 à 12:04:11    

Ah, il y a du changement : Ce coup ci je suis redirigé vers la racine de mon site.

Reply

Marsh Posté le 27-02-2007 à 12:14:28    

RewriteRule ^serie/([a-zA-Z0-9-]+)/photos\.html$ /index.php?do=$1 [L]
 
retest ;)

Reply

Marsh Posté le 27-02-2007 à 12:19:25    

Non plus.

Reply

Marsh Posté le 27-02-2007 à 12:28:58    

ton fichier index.php se trouve bien à la racine de ton site ?

Reply

Marsh Posté le 27-02-2007 à 12:32:48    

Dans le dossier http://mdkart.fr/serie/ j'ai le .htaccess que tu me donne et l'index.php qui est mon script de galerie.  
Dans http://mdkart.fr/ j'ai un index.php pour rediriger vers mon blog et un .htaccess dont voilà le contenu

Code :
  1. ErrorDocument 404 /404.php
  2. Options -Indexes
  3. RewriteEngine On
  4. RewriteCond %{HTTP_HOST} !^mdkart\.fr [NC]
  5. RewriteRule (.*) http://mdkart.fr/$1 [QSA,R=301,L]

Reply

Marsh Posté le 27-02-2007 à 12:35:53    

Arf ok.... maintenant ça va marcher ;)
 
RewriteRule ^([a-zA-Z0-9-]+)/photos\.html$ /serie/index.php?do=$1 [L]

Reply

Marsh Posté le 27-02-2007 à 12:39:46    

MERCI! :love:  J'ai plus qu'à modifier mon script parce que les urls relatives ne marchent plus mais le problème me semble réglé!
Merci énormément pour ta patience  :jap:

Reply

Marsh Posté le 27-02-2007 à 12:40:36    

ba de rien... j'ais révisé en même temps :D...

Reply

Marsh Posté le 27-02-2007 à 12:44:57    

Edit : je peux même l'avoir dans un dossier style : http://mdkart.fr/serie/vacance-2006/ avec le .htaccess :

Code :
  1. RewriteEngine on
  2. Options +FollowSymlinks
  3. RewriteRule ^([a-zA-Z0-9-]+)/$ /serie/index.php?do=$1 [L]

Reply

Marsh Posté le 27-02-2007 à 13:03:15    

ba vi, mais je trouvais plus sympa d'avoir le photos.html comme nom de fichier.... :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed