atkati Posté 3 Juin 2005 Posté 3 Juin 2005 Salut à tous. Intéressant ce post ! J'ai tenté de mettre ceci dans mon .htaccess : RewriteEngine onRedirectPermanent / http://www.nouveau-domaine.com Mais voilà.... j'ai une erreur 404.... ! Mon adresse d'origine ressemble à http://www.domaine.com/rep/sous-rep/ et je dois me rendre sur http://www.nouveau-domaine.com/. Bien sûr, j'ai mis le .htaccess dans le répertoire "rep/sous-rep"... Je ne vois pas comment sortir de petit mais génant problème... Une idée messieurs les masters ?
atkati Posté 3 Juin 2005 Posté 3 Juin 2005 J'ai eu une réponse par MP sur WRI... Voici quand même la réponse que j'ai eu : RewriteEngine onRedirectPermanent /rep/sous-rep/ http://www.nouveau-domaine.com/ Ceci renvoie de : http://www.domaine.com/rep/sous-rep/(page) Vers: http://www.nouveau-domaine.com/(page) Voilà voilà !
JJJ Posté 7 Juin 2005 Posté 7 Juin 2005 Salut salut Salut Thierry, Dans ce cas précis, le RedirectPermanent ne fonctionnera pas, parce que tu renommes mairies.htm en ... mairies.htm même s'il est dans un autre répertoire. Je ne vois d'ailleurs pas bien ce que cela t'apporte en terme de mots clés car tu ne fais que répéter un mot clé qui y est déjà... Si tu y tiens absolument, tu pourrais utiliser plutôt RedirectMatch car celui-ci permet des expressions régulières que ne permet pas le RedirectPermanent, par exemple: RedirectMatch 301 ^/(mairies)\.html$ http://www.conseilgeneral.com/$1/$1.html ou encore: RedirectMatch 301 ^/(mairies|truc|machin|bidule)\.html$ http://www.conseilgeneral.com/$1/$1.html Ce dernier te permettrait de rediriger /machin.html en machin/machin.html <{POST_SNAPBACK}> Est-ce que cette redirection match RedirectMatch 301 ^/(mairies|truc|machin|bidule)\.html$ http://www.conseilgeneral.com/$1/$1.html fonctionnerait pour rediriger non page une page de la racine vers un sous-repertoire, mais une page de sous-repertoire vers la même page en racine (la page porte le même nom.) Exemple, on déplace un phpBB qui se trouvait dans le répertoire /forum/de la racine. On imagine que des usagers ont mis en favoris l'adresse http//lesite.tld/forum/index.php ou encore un topic du forum, ce qui donnerait dans leur bookmark http://lesite.tld/forum/viewtopic.php... Si oui, dans l'écriture de RedirectMatch 301 ^/(mairies|truc|machin|bidule), je ne saurais où placer le nom de l'ancien répertoire... Une autre question, l'article dit dans le cas d'un changement de domaine, si j'ai bien compris : RedirectPermanent http://ancien-domaine.tld/ http://www.nouvau-domaine.tld/ Mais en tapant http://ancien-domaine.tld/, (qui est un nom de domaine toujours effectif), moi j'ai toujours l'adresse de l'ancien domaine qui se trouve dans la barre d'url. En effet, l'ancien nom de domaine pointait déjà vers la racine où pointe aussi l'actuel nom de domaine, mais mon but est qu'on oublie définitivement l'ancien nom au profit du nouveau... Je pensais donc que pour la même page accueil affichée, l'adresse en revanche changerait
Xavfun Posté 7 Juin 2005 Posté 7 Juin 2005 Hello, a la place de RedirectPermanent http://ancien-domaine.tld/ http://www.nouvau-domaine.tld/ essai RedirectPermanent /ancien-domaine.tld/ http://www.nouvau-domaine.tld/ pour voir si ça marche mieux (ne met pas le http:://www. mais directement le / (chez moi ça marche)
JJJ Posté 7 Juin 2005 Posté 7 Juin 2005 Non, marche pas On dirait qu'un nom de domaine actif, pointant vers la même racine qu'un autre domaine, ne peut pas être voilé pas un htaccess (ce qui finalement semblerait logique, à bien y regarder... on pourrait faire pointer webmaster-hub.com vers n'importe quoi par exemple) Je ne sais pas s'il y a une solution (mais merci pr ta contrib) En revanche j'aimerais au moins pouvoir rediriger tous les viewtopic.php et le index.php d'un ancien phpBB vers la racine, où est installé l'ancien : en gros j'ai remonté simplement d'un répertoire; et je voudrais pouvoir faire un redirection à l'attention des usagers ayant gardé l'ancien chemin d'accès en favoris. D'où ma question sur la redirection match de Dan... Une idée ?
JJJ Posté 7 Juin 2005 Posté 7 Juin 2005 Ah bah en fait je viens de tenter le coup... j'ai fait : RedirectPermanent /ancienrepertoire/index.php http://racine-du-site/index.php .htaccess que j'ai mis donc à la racine. Ca fonctionne pour index.php apparemment. Je n'ai donc pas bien compris ce que disait Dan Dans ce cas précis, le RedirectPermanent ne fonctionnera pas, parce que tu renommes mairies.htm en ... mairies.htm sad.gif même s'il est dans un autre répertoire. C'est pourtant mon cas avec index.php. Le nom de page est le même, le répertoire est différent
Dan Posté 8 Juin 2005 Auteur Posté 8 Juin 2005 Salut JJJ, Si on change le nom de domaine en gardant le même hébergement, il faut faire une réécriture conditionnelle. C'est simple à comprendre: si tu as les domaines a.tld et b.tld sur le même hébergement, et que tu veux rediriger tout le trafic de a.tld vers b.tld, il est obligatoire de mettre une réécriture conditionnelle. Un simple: RedirectPermanent / http://b.tld/ ne suffira pas, parce qu'il redirigera aussi b.tld/ vers b.tld/ vers b.tld/ etc... tu auras donc une boucle sans fin. Il faut donc utiliser mod_rewrite ! Par exemple, sur le Hub, je redirige toutes les pages auxquelles il manque le www vers le domaine www.webmaster-hub.com comme ceci: RewriteCond %{HTTP_HOST} !www.webmaster-hub.com$RewriteRule (.*) http://www.webmaster-hub.com/$1 [R=301,L] Dans ton cas, il faut donc mettre, pour tout rediriger vers www.b.tld: RewriteCond %{HTTP_HOST} !www.b.tld$RewriteRule (.*) http://www.b.tld/$1 [R=301,L] Cela aura aussi l'avantage de rajouter le www s'il manque J'espère que c'était clair ?
JJJ Posté 8 Juin 2005 Posté 8 Juin 2005 Merci ! RewriteCond %{HTTP_HOST} !www.b.tld$RewriteRule (.*) http://www.b.tld/$1 [R=301,L] Ce que je ne saisis pas, c'est où est-ce que tu renseignes l'url a.tld ou même www.a.tld dans ton expression conditionnelle. Si tout ce qui passait par a.tld auparavant doit diriger vers b.tld, je ne comprends pas pourquoi le domaine a.tld n'est pas renseigné dans l'expression que tu me donnes.
JJJ Posté 9 Juin 2005 Posté 9 Juin 2005 Bonjour, je me permets de signaler une ressource bien utile en complément de l'article sur le htaccess mais aussi le mod rewrite. Ca se trouve là, et ça donne en image des sortes d'aide-mémoire pour toutes expressions conditionnelles..etc. Exemple (j'espère que l'image n'est pas trop grande) : Téléchargeable aussi en PDF (PS pour pas faire de doublon : on trouvera le même genre d'anti-sèches pour les CSS, PHP... )
JJJ Posté 1 Juillet 2005 Posté 1 Juillet 2005 Pour de rire, avant le w-end (on peut hein ?). Puisque cet article traite entre autre de la gestion des 404 personnalisées : La firme Peugeot vient de décider de traîner en justice tous les sites web qui afficheront un message 404 lorsqu'une page n'est pas trouvée : Selon le responsable de la communication ("propagande" en français) : "La 404 est une voiture sympa et mythique, et ceux qui associent ce nombre à une erreur nuisent gravement à notre image".
thick Posté 17 Juillet 2005 Posté 17 Juillet 2005 Un simple: RedirectPermanent / http://b.tld/ ne suffira pas, parce qu'il redirigera aussi b.tld/ vers b.tld/ vers b.tld/ etc... tu auras donc une boucle sans fin. Il faut donc utiliser mod_rewrite ! Par exemple, sur le Hub, je redirige toutes les pages auxquelles il manque le www vers le domaine www.webmaster-hub.com comme ceci: RewriteCond %{HTTP_HOST} !www.webmaster-hub.com$RewriteRule (.*) http://www.webmaster-hub.com/$1 [R=301,L] Dans ton cas, il faut donc mettre, pour tout rediriger vers www.b.tld: RewriteCond %{HTTP_HOST} !www.b.tld$RewriteRule (.*) http://www.b.tld/$1 [R=301,L] <{POST_SNAPBACK}> Super, c'est exactement ce que je cherchais car je bataillais avec RedirectPermanent sans trouver la solution. Une petite recherche sur le Hub et hop c'est gagné. Merci Dan
mandala75 Posté 21 Juillet 2005 Posté 21 Juillet 2005 Bonjour, Qui me viendra en aide car je sèche...? Sur un futur site j'aurai 2 sous-domaines pointant sur 2 répertoires différents selon une forme assez traditionnelle du style : http://sousdomaine1.domaine.com --> http://www.domaime.com/repertoire/ Je souhaiterai maintenant INTERDIRE la consultation de toute page appelée selon la 2e forme et forcer le serveur à renvoyer la 1ère soit soit http://www.domaime.com/repertoire/*.htm --> http://sousdomaine1.domaine.com/*.htm Les différents essais que j'ai faits ne sont pas du tout probants. Merci de votre aide.
Dan Posté 21 Juillet 2005 Auteur Posté 21 Juillet 2005 Salut Mandala75, A la racine du site (dans -http://www.domaime.com/repertoire/ ) tu mets un fichier .htaccess avec ceci: RewriteEngine OnRewriteCond %{HTTP_HOST} !sousdomaine.domaine.com$RewriteRule (repertoire/)?(.*) http://sousdomaine.domaine.com/$2 [R=301,L] Pense à remplacer domaine et sousdomaine dans l'expression Dan
mandala75 Posté 21 Juillet 2005 Posté 21 Juillet 2005 Merci Dan Ca fonctionne parfaitement bien ! Bonne journée
Yonji Posté 7 Août 2005 Posté 7 Août 2005 Hello, Je viens de changer le répertoire de mon blog qui était auparavant à la racine du server, et je suis pas très sure pour le redirect permanent... C'est bien celui ci ? RedirectPermanent / http://www.domaine.tld/blog/ Merci d'avance
Yonji Posté 8 Août 2005 Posté 8 Août 2005 bon, j'ai essayer dans tout les sens mais rien n'y fait, la redirection ne marche pas.... comme je le disais plus haut, j'avais un blog dotclear la racine, deplus j'utiliser l'url rewriting pour enlever le index.php, maintenant tout est installer dans le rpertoire "dotclear" et j'utilise le "pathinfo comme ceci: 1) créer un répertoire dotclear2) tout déplacer dans ce répertoire 3) copier /dotclear/index.php à la racine 4) corriger le app_path dans l'index.php de la racine pour qu'il pointe vers /dotclear/ 5) copier /index.php en /blog.php 6) corriger l'URL vers le weblogue dans la config pour pointer vers /blog/ je voudrai faire une redirection de http://www.domaine.com -- http://wwwdomaine.com/blog/ mais rien n'y fait, ou alors a donne http://www.domaine.com/blog/blog/blog/blog...... tester avec les outils mis a disposition ici meme. voil, c'est plus clair que mon premier post.
Dan Posté 8 Août 2005 Auteur Posté 8 Août 2005 Bonjour Yonji, Si cela boucle c'est que tu as une autre redirection dans le répertoire /blog ... Quelle est l'URL du domaine, et quel est le contenu du fichier .htaccess ? Dan
Yonji Posté 8 Août 2005 Posté 8 Août 2005 (modifié) Bonjour Dan, voici l'adresse du site, concernant le fichier .htaccess (que j'ai effacer), il y avait juste cette ligne : RedirectPermanent / http://www.domaine.tld/blog/ ca comment a nous rendre chevre tout ca ! P.S: Desolee d'ecrit sans accents, mais je les possede pas. Modifié 9 Août 2005 par Yonji
minirop Posté 26 Août 2005 Posté 26 Août 2005 Bonjour, J'ai une question, comment le couple .htaccess/.htpasswd fait pour savoir si le password est bon vu que dans le .htpasswd on peut le crypté avec plusieurs algorythmes (AES,DES,MD5) ou la fonction crypt de PHP qui sort plusieurs hash pour un même mot ou simplement ne pas le crypté. merci
tuyau45 Posté 5 Septembre 2005 Posté 5 Septembre 2005 (modifié) bonjour, j'ai deux domaines toto.com et toto.net qui sont tous deux heberges sur le meme serveur. Je vousdrais n'avoir qu'une adresse officielle : toto.net . Comment modifier le .htaccess pour que : Avec machin.php valable pour n'importe quel fichier heberge sur le site toto.com --> toto.netwww.toto.com --> toto.netwww.toto.net --> toto.nettoto.com/machin.php --> toto.net/machin.phpwww.toto.com/machin.php --> toto.net/machin.phpwww.toto.net/machin.php --> toto.net/machin.php merci Fred Modifié 5 Septembre 2005 par tuyau45
tuyau45 Posté 6 Septembre 2005 Posté 6 Septembre 2005 bonjour, J'ai essaye avec RewriteCond %{HTTP_HOST} !toto.net$RewriteRule (.*) http://toto.net/$1 [R=301,L] Mais si je tape toto.com je reste sur toto.com ... une idee ? Merci
tuyau45 Posté 8 Septembre 2005 Posté 8 Septembre 2005 J'ai toujours besoin d'aide quelqu'un a t'il une idee ? merci
Dan Posté 8 Septembre 2005 Auteur Posté 8 Septembre 2005 Tout simplement avec : RewriteCond %{HTTP_HOST} !toto.net$RewriteRule (.*) http://toto.net/$1 [R=301,L] Cela devrait marcher... C'est ce que j'utilise sur le Hub depuis 2 ans RewriteCond %{HTTP_HOST} !www.webmaster-hub.com$RewriteRule (.*) http://www.webmaster-hub.com/$1 [R=301,L] Assures-toi d'avoir mis "RewriteEngine on" au dessus de ce code Dan
tuyau45 Posté 8 Septembre 2005 Posté 8 Septembre 2005 Merci J'ai au moins qqs resultats, j'avais oublie "RewriteEngine on" grrrr Ce qui marche ; toto.com --> toto.net toto.com/machin.php --> toto.net/machin.php Ce qui ne marche pas www.toto.com --> www.toto.com www.toto.net --> www.toto.net www.toto.com/machin.php --> www.toto.com/machin.php www.toto.net/machin.php --> www.toto.net/machin.php J'aimerai comprendre aussi : RewriteCond %{HTTP_HOST} !toto.net$ signifie t'il Si HTTP_HOST different de toto.net ? Encore merci
Dan Posté 8 Septembre 2005 Auteur Posté 8 Septembre 2005 Ce qui ne marche paswww.toto.com --> www.toto.com www.toto.net --> www.toto.net www.toto.com/machin.php --> www.toto.com/machin.php www.toto.net/machin.php --> www.toto.net/machin.php J'aimerai comprendre aussi : RewriteCond %{HTTP_HOST} !toto.net$ signifie t'il Si HTTP_HOST different de toto.net ? Qu'est ce qui ne marche pas ? Tes exemples ne sont pas clairs... Tu peux forcer le host à toto.net en changeant la condition: RewriteCond %{HTTP_HOST} !^toto.net$ (ajout de ^ au début) Cette condition signifie effectivement "si le host n'est pas toto.net" Dan
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant