Aller au contenu
aspeum

.htaccess : redirections par répertoire

Noter ce sujet :

Recommended Posts

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

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 ?

Modifié par aspeum

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ;)

Donc:

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Dan pour les deux corrections... mais malheureusement, ça ne marche toujours pas :(

Il n'y a pas raison que mon serveur ne supporte pas les .htaccess ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaie en ne mettant que la seconde ligne et dis-nous ce que ça donne

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)

Partager ce message


Lien à poster
Partager sur d’autres sites

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...

Partager ce message


Lien à poster
Partager sur d’autres sites

Est-ce que cet autre serveur permet d'utiliser les redirections ?

Qui est l'hébergeur ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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:

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :)

Au moins vous avez la main sur le domaine !

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Envoie-moi le nom du serveur et le mot de passe de root par mp, je regarderai cet après midi.

Dan

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca y est, j'ai fait le transfert du nom de domaine, et ça fonctionne... mais pas exactement comme je m'y attendais :)

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/ :

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) ?

RedirectPermanent /sinscrire http://www.soleil.info/ecole/inscription.html

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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:

RewriteRule  sinscrire ecole/inscription.html  [L]

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • Contenu similaire

    • Par kevinjoseph
      Bonjour, j’ai un gros problème sur mon site Wordpress . Du jour au lendemain, mon site wordpress fais une redirection vers un autre site wordpress que j’ai crée ,sans que je touche à quoi que ce soit. Quand j’essai d’aller sur l’admin pour désactiver les plugins et voir d’où peut venir le problème. Impossible d’accéder, sa me redirige vers l’admin de l’autre site. Au final il est impossible que j’accède au site via (google, la bare de recherche, les favoris, l’admin…) pour voir ce qu’il fonction pas, j’ai juste accès au FTP. J'ai essayé de voir d'où pouvez venir ce bug en supprimant les plugins, le théme, mes derniers modifications, regarder sur le .htaccess si il y avais quelque par le nom de domaine de l'autre site écrit. Ca n'a rien changer, le site continue de ce rediriger automatiquement vers l'autre site. Si vous avez une idée d’où sa peut venir ou comment faire pour arranger ça et surtout comment éviter que sa ce reproduise. Sa m’aiderai beaucoup, merci d’avance.
      voici le code du .htaccess:
       
      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>

      # END WordPress
      ~   Ludovic • 16:28    
    • Par leobk
      Bonjour,
       
      J'ai un sous-domaine www.fr.monsite.com dédié pour la réservation des vols
      j'ai redirigé récemment ce sous-domaine vers le site principal www.monsite.com et le nombre des erreurs 404 a explosé
      un nombre énorme d'URLs de type :
      www.fr.monsite.com/fr/vols/index?f_type=01&f_departure=TLS&f_destination=DJE&f_date_from=08/09/2013&f_date_to=22/09/2013&f_flexibility=3&f_paxs_adults=2&f_paxs_childs=0&f_paxs_infants=0
      redirigent vers :
      www.monsite.com/fr/vols/index?f_type=01&f_departure=TLS&f_destination=DJE&f_date_from=08/09/2013&f_date_to=22/09/2013&f_flexibility=3&f_paxs_adults=2&f_paxs_childs=0&f_paxs_infants=0
       
      L'URL de destination est biensur introuvable 404, puisque les variables utilisés dans les deux sites ne sont pas identiques
      Voici la structure d'URL si on fait une recherche de vol sur le site principal :
      https://www.monsite.com/fr/resa?depart=SXF&arrivee=NBE&aller=2017-11-10&retour=2017-11-30&adultes=1&enfants=1&bebes=0&departureDateTime_D=&arrivalDateTime_D=&departureDateTime_R=&arrivalDateTime_R=&fareGroupName=&fareGroupName_R=&sens=2&currency=EUR&airline=&flightNumber=&flight=&flight_retour=&webview=0&felxibilite=2
       
       
      existe-il un moyen pour rediriger l'ensemble des URLs dynamiques du sous-domaines vers une URL statique du domaine principale (autre que l'accueil)?
       
       
    • Par PieceMobile
      Bonjour,



      J'espère que vous allez tous bien.



      Auriez vous une solution pour rediriger ( via une règle htaccess par exemple ) :



      http://www.mon-site.com/blabla.html?ps_mobile_site=1



      vers : http://www.mon-site.com/blabla.html



      A mon avis, s'agissant d'un paramètre d'URL, de ce que j'ai cru comprendre -a mon petit niveau- c’était pas possible, mais ça me dépannerai pas mal si l'un d'entre vous avait une idée.



      Merci d'avance





    • Par aurelien59
      Bonjour, Je me permet de poster ce problème sur ce forum en plus de l'avoir posté sur un autre. Le problème survient sur un site codé en dur. Depuis plusieurs mois après la mise en place de redirection, je rencontre un problème. La redirection a été mise en place pour rediriger simplement les pages ayant un underscore vers un tiret. Par exemple page_1.php vers page-1.php Dans Google webmasters tools, zone "Exploration", > Erreurs d'exploration > le nombre des URL non suivies à augmenter de manière considérable sur ordinateurs et smartphone.

      Voici un exemple de page contenant l'erreur : page-1.php/page-a.php (alors que la page correcte est page-1.php, la page page-a.php est présente sur le site en racine). Lorsque je clic sur l'url d'erreur, dans l'onglet "Référencée sur". Les url qui apparaissent sont : http://www.monsite.fr/page-2.php/page-b.php'>>http://www.monsite.fr/page-2.php/page-b.php et http://www.monsite.fr/page-2.php/page-c.php'>>http://www.monsite.fr/page-2.php/page-c.php (non indexés sur Google). Voici l'extrait du .htaccess ErrorDocument 404 http://www.monsite.fr/404.phpRewriteEngine onRewriteCond %{HTTP_HOST} ^monsite.fr$RewriteRule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301]RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]RewriteRule ^(.*)\.php/$ http://www.monsite.fr/$1.php[L,R=301]RewriteRule ^(.*)\.php/(.*)\.php$ http://www.monsite.fr/$1.php[R=301]RewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.*$ - [NC,L]RewriteRule ^.*$ /404.php [NC,L] Merci beaucoup pour votre aide.
×