Version complète: sur le forum Webmaster Hub : .htaccess : redirections par répertoire
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
aspeum
J'ai lu l'article de Dan sur les fichiers .htaccess. Mais j'ai l'impression que je passe à côté d'un point important, parce que j'arrive systématiquement à une erreur 500.

Ce que je veux faire

J'ai un ancien site : www.vivreaveclesoleil.info. Il contient notamment trois répertoires : /ecole, /loisirs et /famille.

J'ai un nouveau site : www.soleil.info. Il contient notamment trois répertoires /ecole, /animation et /famille.

J'aimerais que toutes les URL www.vivreaveclesoleil.info/ecole/[n'importe quoi] pointent vers www.soleil.info/ecole. Idem pour /loisirs => /animation et /famille => /famille

De plus, j'aimerais que www.vivreaveclesoleil.info pointe vers www.soleil.info

Ce que j'ai mis dans mon .htaccess, à la racine du site

CODE
RedirectPermanent / http://www.soleil.info
RedirectPermanent /loisirs/ http://www.soleil.info/animation


Ce qui se passe

Erreur 500


Est-ce que quelqu'un voit ce qui peut poser problème ?
Dan
Et oui, tu as oublié le slash final.

Avec redirectPermanent, on redirige toujours un répertoire vers un répertoire, et pas vers une seule page wink.gif

Donc:

CODE
RedirectPermanent  /loisirs/   http://www.soleil.info/animation/
RedirectPermanent  /  http://www.soleil.info/


Le fait aussi de mettre "RedirectPermanent / http://www.soleil.info/" au début, faisait qu'il ne pouvait pas passer à la seconde ligne que que la redirection s'appliquait.
aspeum
Merci Dan pour les deux corrections... mais malheureusement, ça ne marche toujours pas sad.gif

Il n'y a pas raison que mon serveur ne supporte pas les .htaccess ?
Dan
Essaie en ne mettant que la seconde ligne et dis-nous ce que ça donne
CODE
RedirectPermanent  /  http://www.soleil.info/


Il faut mettre ça à la racine de l'ancien domaine www.vivreaveclesoleil.info

Les deux sont hébergés sur le même serveur (celui que je gère) ?

Fais aussi attention si tu crées tes fichiers sous windows ou mac, les fins de lignes ne sont pas les mêmes sous Linux, et il faut transférer par ftp en choisissant le mode ASCII ou TEXT (et pas le mode BINARY)


aspeum
C'est depuis un autre serveur OVH vers celui que tu gères.

J'ai essayé en mode Texte (c'était en mode automatique, j'utilise WinSCP), je ne garde que la première ligne, ça ne change rien, même erreur...
Dan
Est-ce que cet autre serveur permet d'utiliser les redirections ?
Qui est l'hébergeur ?
davidm
Je crois que c'est OVH Dan, désolé pour l'oubli du slash dans le modèle de 301 que je t'ai communiqué Rémi blushing.gif

La config du site vivreaveclesoleil me semble assez classique :

Date: Tue, 19 Feb 2008 10:51:09 GMT
Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22
X-Powered-By: PHP/4.3.10-22

aspeum
Je confirme que c'est un serveur OVH, dédié lui aussi.
davidm
Je me demande si la directive override est activé dans httpd.conf (AllowOverride All est nécessaire si je ne m'abuse) si ça se trouve ils ont mis AllowOverride None dans le httpd.conf...

Le plus simple serait de transférer ce domaine sur ns29452 (i.e modifier le pointage des DNS pour vivreaveclesoleil.info), créer le domaine dans DirectAdmin, attendre que les DNS soit propagées et ensuite ajouter le .htaccess sur le serveur smile.gif

Au moins vous avez la main sur le domaine !
aspeum
Oui, sûrement... Mais le nom est chez Gandi, dont l'interface merdouille en ce moment... Je n'ai pas réussi à modifier mes DNS, hier...

Comment je peux vérifier l'état de override ?
Dan
Envoie-moi le nom du serveur et le mot de passe de root par mp, je regarderai cet après midi.

Dan
aspeum
Juste au cas où quelqu'un tomberait sur ce topic

Dan m'a confirmé que c'était bien un problème d'AllowOverride dans mon cas... et comme je ne peux pas éditer le fichier httpd.conf, je laisse tomber smile.gif
Dan
Je lui ai suggéré de déplacer ce domaine sur un serveur où il avait le contrôle du .htaccess...
Et là ça fonctionne bien wink.gif
aspeum
Ca y est, j'ai fait le transfert du nom de domaine, et ça fonctionne... mais pas exactement comme je m'y attendais smile.gif

Je viens de découvrir ce sujet, et j'ai exactement le même problématique : je veux rediriger un répertoire entier vers une page. C'est que je voulais dire quand je disais, probablement maladroitement : "J'aimerais que toutes les URL www.vivreaveclesoleil.info/ecole/[n'importe quoi] pointent vers www.soleil.info/ecole"

Si j'ai bien compris ton explication dans l'autre sujet, je peux ajouter ça dans le /ecole/ :
CITATION
RewriteEngine on
RewriteRule (.*) http://www.soleil.info/ecole/ [R,L]


Est-ce que c'est possible de faire précéder cette règle par quelque chose du genre (qui serait donc une exception à la règle générale) ?
CITATION


Je découvre qu'il y a une manière particulière d'écrire toutes ces règles : est-ce qu'il existe une ressource bien faite pour se plonger là-dedans ?
Dan
Il y a bien un article que j'ai écrit il y a déjà un moment : Mod_rewite ou la réécriture d'URLs à la volée
Sinon, plutôt que d'utiliser RedirectPermenant, tu peux avant la règle que je t'ai donnée écrire:
CODE
RewriteRule  sinscrire ecole/inscription.html  [L]
aspeum
Merci pour l'article, je vais essayer de me débrouiller avec ça !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.