Aller au contenu

Sujets conseillés

Posté

Salut à tous,

Je suis photographe et j'essaye laborieusement le rewriting de mon site ( http://www.david-merlin.com )

Mes pages actuelles sont de la forme : index.php?start=30&album=1

Le rewriting associé dans htaccess est : RewriteRule ^phototheque-([0-9]*)-([0-9]*)\.php$ /phototheque/index.php?start=$2&album=$1 [L]

Je ne comprend pas comment faire en sorte que les visiteurs issus des pages en php "brut" puisse être automatiquement redirigées vers les pages sans variables dans l'url.

Je crois savoir qu'il faut utiliser une requête de type :

RewriteCond %{REQUEST_URI} !^phototheque/index.php$

RewriteRule .* - [L]

RewriteRule ^.*$ %{QUERY_STRING}

Mais j'avoue ne pas être très doué pour l'adapter à mon cas !

Merci d'avance pour votre aide ;)

Posté
Je ne comprend pas comment faire en sorte que les visiteurs issus des pages en php "brut" puisse être automatiquement redirigées vers les pages sans variables dans l'url.

En fait, je vois le problème...

Tes visiteurs ne doivent plus voir 1 seule adresse avec des parametres index.php?start=30&album=1

Il faut modifier le code php pour generer des adresses de type : index-30-1.php par exemple.

et ensuite tu crees le .htaccess qui va bien, qui va rediriger ceux qui visitent index-30-1.php vers index.php?start=30&album=1

Posté

Bonjour,

Jai répondu à une question similaire ici, appliquée à ton cas cette méthode donnera ceci, à placer dans le répertoire racine de ton site, dans le fichier .htaccess :

RewriteEngine On

RewriteRule ^phototheque-([0-9]*)-([0-9]*)\.php$ /phototheque/index.php?album=$1&start=$2 [L]

RewriteCond %{QUERY_STRING} ^start=(.+)&album=(.+)$
RewriteRule ^phototheque/index.php$ http://www.david-merlin.com/phototheque-%1-%2.php? [L]

Note que j'ai changé l'ordre des paramètres dans ta première règle... ainsi lorsque la règle dépendante de la RewriteCond est appliquée et qu'il y a redirection, cela ne créera pas de boucle. Un autre moyen déviter cela aurait été de renommer ton fichier "phototheque/index.php" en autre chose et ne modifier que la première RewriteRule (ce n'est pas important pour la deuxième RewriteRule que "phototheque/index.php" existe, c'est juste une analyse de ce que le visiteur a utilisé comme adresse... alors que pour la première RewriteRule le fichier DOIT exister vu que cest ce qui est présenté à lutilisateur lorsquil tape ladresse sans paramètre Querystring) ;)

Bonne continuation !

Posté

Salut,

Merci pour ton coup de pouce, ce script fonctionne à condition de changer -%1-%2.php? en -%2-%1.php?.

J'essaye maintenant de faire la réécriture des pages qui affichent la photo en grand format, elles ont la forme suivante:http://www.david-merlin.com/phototheque/show.php?start=0&file=168_6848.jpg&album=1 et je veux les réécrire de cette façon : http://www.david-merlin.com/phototheque/sh...p;album=$3

Le script suivant est placé dans .htaccess :

RewriteEngine On

RewriteRule ^phototheque/photos-([0-9]*)-([0-9_[A-Za-z]*)-([0-9]*)\.php$ /phototheque/show.php?start=$1&file=$2&album=$3 [L]

RewriteCond %{QUERY_STRING} ^start=(.+)&file=(.+)&album=(.+)$

RewriteRule ^phototheque/show.php$ http://www.david-merlin.com/phototheque/photos-%1-%2-%3.php? [L]

Conséquence : une page d'erreur 404 !

Merci de votre aide !

Posté (modifié)

Salut,

je ne suis pas sur de ce que je vais avancer, mais ça sera peut être une piste qui te permettra de t'éclairer...

Il est possible que le slash présent dans ta réécriture soit mal interprété (celui entre phototeque et photos)... il y a peut être confusion avec un dossier de ton site...qui n'existe pas, d'où l'erreur 404!!! Tente avec un tiret, cela fonctionnera peut être... en tout cas, sinon, je ne vois pas trop la cause de ce soucis étant donné le peu de différence avec la version qui fonctionne!!!

A+

Modifié par Bourinho

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...