tyuiopo Posté 24 Juillet 2006 Posté 24 Juillet 2006 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
KaRaK Posté 24 Juillet 2006 Posté 24 Juillet 2006 (modifié) Bonjour, Je te conseille la lecture de cet article : http://www.webmaster-hub.com/publication/article5.html Modifié 24 Juillet 2006 par KaRaK
tyuiopo Posté 24 Juillet 2006 Auteur Posté 24 Juillet 2006 Merci pour le lien mais j'ai déjà consulté cette page et la solution de mon problème semble ne pas s'y trouver. David
Vincent Posté 24 Juillet 2006 Posté 24 Juillet 2006 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
TheRec Posté 25 Juillet 2006 Posté 25 Juillet 2006 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 OnRewriteRule ^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 !
tyuiopo Posté 31 Juillet 2006 Auteur Posté 31 Juillet 2006 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 !
Bourinho Posté 31 Juillet 2006 Posté 31 Juillet 2006 (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é 31 Juillet 2006 par Bourinho
tyuiopo Posté 31 Juillet 2006 Auteur Posté 31 Juillet 2006 Salut, Le tiret ne change rien, merci d'avoir essayé de m'aider, cordialement, David
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant