touta Posté 18 Novembre 2009 Posté 18 Novembre 2009 Bonjour, Je débute avec le fichier .htaccess et voudrais un coup de main svp... J'ai restructuré mon site web en créant un sous-répertoire /rep1; je dois rediriger tous mes fichiers du repertoire racine vers le mêmes fichiers dans le répertoire /rep1 sauf si la requete est: 1. www.monsite.com ou 2. www.monsite.com/index.htm qui doit être alors dirigée vers www.monsite.com/index.htm D'avance merci.
Patrick Posté 18 Novembre 2009 Posté 18 Novembre 2009 Salut Touta et bienvenue sur le Hub. Pour t'aider, tu peux consulter les publication suivantes du Hub : - http://www.webmaster-hub.com/publication/La-reecriture-d-URL-recursive.html - http://www.webmaster-hub.com/publication/Le-fichier-htaccess.html - http://www.webmaster-hub.com/publication/Mod-rewrite-ou-la-reecriture-des.html si tu ne trouves pas ton bonheur dans ces publications n'hésite pas à nous le dire, on te donnera un coup de mains. ++ Patrick
touta Posté 18 Novembre 2009 Auteur Posté 18 Novembre 2009 Merci Patrick J'ai essayé ceci dans mon fichier .htaccess à la racine du site: RewriteCond %{REQUEST_URI} !^index\.htm$ RewriteRule ^(.*).htm$ http://www.monsite.com/rep1/$1.htm [L,R] mais j'obtiens toujours un message d'erreur....
Patrick Posté 18 Novembre 2009 Posté 18 Novembre 2009 Merci de donner l'intégralité de ton .htaccess stp. Est ce qu'avec seulement la ligne (dans ton .htaccess) RewriteEngine on tu as un message d'erreur ? ++ Patrick
touta Posté 18 Novembre 2009 Auteur Posté 18 Novembre 2009 Merci de donner l'intégralité de ton .htaccess stp. Est ce qu'avec seulement la ligne (dans ton .htaccess) RewriteEngine on tu as un message d'erreur ? ++ Patrick non, pas de problème Touta
Arlette Posté 18 Novembre 2009 Posté 18 Novembre 2009 Merci de donner l'intégralité de ton .htaccess stp. Il vaudrait peut-être mieux donner ce que Patrick te demande directement ... Ca devrait aider les pros dans le domaine. Parfois, une simple lettre, ou un signe manquant et tout devient différent .
Jeanluc Posté 18 Novembre 2009 Posté 18 Novembre 2009 Bonjour, Quand tu dis "j'obtiens toujours un message d'erreur", ce serait utile de préciser l'erreur exacte et l'URL exacte qui a provoqué l'erreur. De toute façon: RewriteRule ^(.*).htm$ http://www.monsite.com/rep1/$1.htm [L,R] fait une redirection 302 de http://www.monsite.com/machin.htm vers http://www.monsite.com/rep1/machin.htm, suivie d'une redirection 302 de http://www.monsite.com/rep1/machin.htm vers http://www.monsite.com/rep1/rep1/machin.htm, suivie d'une redirection 302 de http://www.monsite.com/rep1/rep1/machin.htm vers http://www.monsite.com/rep1/rep1/rep1/machin.htm, ... jusqu'à ce qu'une erreur apparaisse parce que le nombre maximum de redirections a été dépassé. Jean-Luc
Jeanluc Posté 18 Novembre 2009 Posté 18 Novembre 2009 Tu peux essayer ceci: RewriteCond %{REQUEST_URI} !^index\.htm$ RewriteRule ^([^\/]*)\.htm$ http://www.monsite.com/rep1/$1.htm [L,R=301] Jean-Luc
touta Posté 18 Novembre 2009 Auteur Posté 18 Novembre 2009 Tu peux essayer ceci: RewriteCond %{REQUEST_URI} !^index\.htm$ RewriteRule ^([^\/]*)\.htm$ http://www.monsite.com/rep1/$1.htm [L,R=301] Jean-Luc Oui, en fait tu as raison, cela part en boucle avec message d'erreur. Je vais essayer ce que tu proposes...tu pourrais m'expliquer l'expression ([^\/]*) svp? Merci Touta
Jeanluc Posté 18 Novembre 2009 Posté 18 Novembre 2009 tu pourrais m'expliquer l'expression ([^\/]*) svp? [^\/] = n'importe quel caractère sauf un /[^\/]* = une chaîne composée de n'importe quels caractères, mais sans / Cela devrait exclure les rep1/machin.htm et donc empêcher que ça boucle. Jean-Luc
touta Posté 18 Novembre 2009 Auteur Posté 18 Novembre 2009 [^\/] = n'importe quel caractère sauf un / [^\/]* = une chaîne composée de n'importe quels caractères, mais sans / Cela devrait exclure les rep1/machin.htm et donc empêcher que ça boucle. Jean-Luc Ok, merci beaucoup, cela fonctionne très bien maintenant!
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant