miike Posté 23 Octobre 2006 Posté 23 Octobre 2006 (modifié) j'essaye de faire pointer une 301 sur l'url du fichier dont l'url est réécrit voici mon fichier htacces : Code: Options +FollowSymlinks RewriteEngine on RewriteRule ^fr/(.*)/(.*)\.htm$ /Website/site/fra_$1_$2.htm [L] RewriteRule ^en/(.*)/(.*)\.htm$ /Website/site/eng_$1_$2.htm [L] RewriteRule ^fr/(.*)\.htm$ /Website/site/fra_$1.htm [L] RewriteRule ^en/(.*)\.htm$ /Website/site/eng_$1.htm [L] #RedirectMatch Permanent ^/Website/site/eng_(.*)_(.*)\.htm /en/$1/$2.htm #RedirectMatch Permanent ^/Website/site/fra_(.*)_(.*)\.htm /fr/$1/$2.htm #RedirectMatch Permanent ^/Website/site/eng_(.*)\.htm /en/$1.htm #RedirectMatch Permanent ^/Website/site/fra_(.*)\.htm /fr/$1.htm et mon environment de test : http://www.pixgarden.com/Website/site/ Ca marche tres bien pour l'url. la 301 semble marcher si elle est seul Mais les deux ensembles, ca déconne ! Ou me suis je trompé s'il vous plait ? Modifié 23 Octobre 2006 par miike
Dan Posté 23 Octobre 2006 Posté 23 Octobre 2006 Avec RewriteRule et RedirectMatch, tu fais appel à 2 modules Apache distincts: respectivement mod_rewrite et mod_alias. Il n'existe rien que mod_rewrite ne puisse faire seul, pas besoin donc d'encombrer Apache avec les RedirectMatch, écris toutes tes règles avec mod_rewrite (donc RewriteRule) De plus, tes règles telles que définies vont générer une "infinite loop"
miike Posté 23 Octobre 2006 Auteur Posté 23 Octobre 2006 (modifié) Merci Dan pour ta réponse. Visiblement il y a des choses que je ne comprends pas.* Pour moi, ce n'est pas du tout une loop infinit, je m'explique : le rewriting (ma partie RewriteRule ) permet a une page d'être accéssible par plusieurs url, elle marche tres bien si elle est toute seul et les redirection 301 (RedirectMatch Permanent) permettent d'éviter le duplicate content en ne laissant que les url "virtuelles" dans les index des moteurs, si tu vois ce que je veux dire. Et cela fonctionne aussi si le rewriting n'est pas la. Donc moi je veux bien le faire autrement, si ca me fait la même chose Explique moi ou je suis à l'ouest, s'il te plait Modifié 23 Octobre 2006 par miike
Dan Posté 23 Octobre 2006 Posté 23 Octobre 2006 et les redirection 301 (RedirectMatch Permanent) permettent d'éviter le duplicate content en ne laissant que les url "virtuelles" dans les index des moteurs, si tu vois ce que je veux dire. Et cela fonctionne aussi si le rewriting n'est pas la. C'est justement ce que je te disais... les RedirectMatch combinées aux RewriteRule te causent des boucles infinies.... c'est pour cela que ça ne marche pas :!: Remplace ta première règle RedirectMatch par RewriteRule Website/site/eng_(.*)_(.*)\.htm http://www.pixgarden.com/en/$1/$2.htm [R=301,L] et les autres à l'avenant. et fais un essai.
miike Posté 23 Octobre 2006 Auteur Posté 23 Octobre 2006 (modifié) j'ai juste laissé : Options +FollowSymlinksRewriteEngine onRewriteRule ^fr/(.*)\.htm$ /Website/site/fra_$1.htm [L]RewriteRule ^en/(.*)\.htm$ /Website/site/eng_$1.htm [L]RewriteRule Website/site/eng_(.*)\.htm http://www.pixgarden.com/en/$1.htm [R=301,L]RewriteRule Website/site/fra_(.*)\.htm http://www.pixgarden.com/fr/$1.htm [R=301,L] et ca déconne tout autant. Comme précédement les 301 fonctionnent si elles sont seuls et les rewriting fonctionnent si ils sont seuls je comprend pas Modifié 23 Octobre 2006 par miike
Dan Posté 23 Octobre 2006 Posté 23 Octobre 2006 Là c'est moi qui ne comprend pas ce que tu veux faire... parce que comme je te le disais, mettre les deux en même temps te crée une boucle infinie. Quel est le nom du fichier sur l'espace web (pas l'URL) ? Quelle est l'ancienne URL ? Et quelle est la nouvelle ? Tu dois bien avoir des pages en .php quelque part, ou alors tu as utilisé une directive AddType ?
miike Posté 23 Octobre 2006 Auteur Posté 23 Octobre 2006 Je vais essayer d'être simple et concret à l'origine, j'ai un site avec des urls du type : ndd.com/Website/site/fra_accueil.htm ndd.com/Website/site/fra_categorie_mot.htm Plein plein de fichier htm dans le repertoire physique "site" C'est moche, tout ca Donc je veux modifier ca mais sans toucher aux fichiers ni au repertoire en plus tous les liens entre les fichiers sont en durs. Je veux donc rentre accéssible tous ses fichiers depuis des urls plus sympatiques avec ca : RewriteRule ^fr/(.*)\.htm$ /Website/site/fra_$1.htm ceci ne fait aucune redirection mais permet en théorie juste de rendre accéssible la page d'accueil depuis l'url : ndd.com/fr/accueil.htm Ensuite, je veux faire une redirection 301 pour que cela soit l'url belle qui reste dans l'index des moteurs avec cette regle : RewriteRule Website/site/fra_(.*)\.htm http://www.pixgarden.com/fr/$1.htm [R=301,L] Enfin en théorie
Dan Posté 23 Octobre 2006 Posté 23 Octobre 2006 Je comprends mieux pourquoi tu galères... Si tu changes tes URLs, tu devras automatiquement modifier tes fichiers. Je ne vois pas comment tu pourrais t'en sortir autrement.
miike Posté 24 Octobre 2006 Auteur Posté 24 Octobre 2006 et si je renomme tous mes fichiers en .htmL avec un htaccess : RewriteRule Website/site/eng_(.*)\.htm http://www.pixgarden.com/en/$1.htm [R=301]RewriteRule Website/site/fra_(.*)\.htm http://www.pixgarden.com/fr/$1.htm [R=301]RewriteRule ^fr/(.*)\.htm$ /Website/site/fra_$1.html [L]RewriteRule ^en/(.*)\.htm$ /Website/site/eng_$1.html [L] ca devrait marcher non ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant