Bonjour
Cette question fait suite à la précédente http://forum.alsacreations.com/topic-1-70143-1-Resolu-Favicon-et-redirection.html
J'ai découvert en fait que tout essai d'accéder à un fichier ou un répertoire commençant par "f" aboutit à une redirection vers la page d'accueil.
J'en déduis qu'il s'agit bien d'une redirection, vraisemblablement due à l'interprétation de mon fichier .htaccess
Pour être sûr que ce n'était pas dû à une erreur 404, j'ai momentanément mis en commentaires les redirections sur erreurs.
Voici l'état du fichier .htaccess:
<Files .htaccess>
order allow,deny
deny from all
</Files>
AddType application/x-httpd-php5 .php
#   ErrorDocument 400 /html/index.php
#   ErrorDocument 401 /html/index.php
#   ErrorDocument 403 /html/index.php
#   ErrorDocument 404 /html/index.php
Redirect permanent /Documents  http://www.bonieux.com/documents
 
Redirect permanent /en.html  http://www.bonieux.com/html/index.php?lang=en
 
Redirect permanent /fr.html  http://www.bonieux.com/index.php?lang=fr
 
Redirect permanent /fr/paravents.html  http://www.bonieux.com/html/screens/index.php?lang=fr
 
Redirect permanent /en/screens.html  http://www.bonieux.com/html/screens/index.php?lang=en
 
Redirect permanent /fr/paravents/  http://www.bonieux.com/html/galleries/screens/index.php?lang=fr
 
RedirectMatch ^/en/screens/*  http://www.bonieux.com/html/galleries/screens/index.php?lang=en
 
RedirectMatch /contact.html  http://www.bonieux.com/html/contact/index.php?lang=fr
 
RedirectMatch ^/en/contact*  http://www.bonieux.com/html/contact/index.php?lang=en
 
RedirectMatch ^/fr/contact*  http://www.bonieux.com/html/contact/index.php?lang=fr
 
RedirectMatch ^/en/pressbook/*  http://www.bonieux.com/html/pressbook/index.php?lang=en
 
RedirectMatch ^/fr/revue-presse/*  http://www.bonieux.com/html/pressbook/index.php?lang=fr
 
RedirectMatch ^/en/actualites-actu-news/*  http://www.bonieux.com/html/news/index.php?lang=en
 
RedirectMatch ^/en/news/*  http://www.bonieux.com/html/news/index.php?lang=en
 
RedirectMatch ^/fr/actualites-actu-news/*  http://www.bonieux.com/html/news/index.php?lang=fr
 
RedirectMatch ^/en/artist*  http://www.bonieux.com/html/artist/index.php?lang=en
 
RedirectMatch ^/fr/artist*  http://www.bonieux.com/html/artist/index.php?lang=fr
 
RedirectMatch ^/en/galleries/*  http://www.bonieux.com/index.php?lang=en
 
RedirectMatch ^/fr/galeries/*  http://www.bonieux.com/index.php?lang=fr
 
RedirectMatch ^/en/component/*  http://www.bonieux.com/index.php?lang=en
 
RedirectMatch ^/fr/component/*  http://www.bonieux.com/index.php?lang=fr
 
RedirectMatch ^/en*  http://www.bonieux.com/html/index.php?lang=en
 
RedirectMatch ^/fr*  http://www.bonieux.com/html/index.php?lang=fr
 
RedirectMatch ^/flashxml/*  http://www.bonieux.com
 
RedirectMatch ^/v2*  http://www.bonieux.com
 

Quelqu'un aurait il une idée sur les raisons de ce phénomène?

Je sais maintenant comment le contourner: il suffit de renommer les fichiers et répertoires, par exemple en remplaçant les "f" par des "F", mais je n'aime pas ne pas comprendre ce qui se passe!
Modifié par PapyJP (29 Dec 2013 - 10:30)
Poser la question, c'est en fait y répondre!
Le bug vient de la redirection
RedirectMatch ^/fr*   http://www.bonieux.com/html/index.php?lang=fr

qui est comprise comme "tout nom de dossier ou de fichier commençant par un f suivi d'un nombre quelconque de r" et non pas, comme je le croyais "tout nom de fichier ou de répertoire commenaçant par "fr"
J'ai remplacé par
RedirectMatch ^/fr(.*)  http://www.bonieux.com/html/index.php?lang=fr
et ça fonctionne.
J'ai ai également profité pour faire de même avec "^/en*" devenu "^/en(.*)"
PapyJP a écrit :

J'ai remplacé par
RedirectMatch ^/fr(.*)  http://www.bonieux.com/html/index.php?lang=fr
et ça fonctionne.
J'ai ai également profité pour faire de même avec &quot;^/en*&quot; devenu &quot;^/en(.*)&quot;


Pas besoin de mettre de parenthèses (qui servent à capturer une expression). En revanche tu voudras sans doute rajouter un slash après la langue.


RedirectMatch ^/fr/.*  http://www.bonieux.com/html/index.php?lang=fr
 


En revanche le point (.) est un caractère spécial qui signifie "n'importe quel caractère". Donc dans toutes tes règles où tu l'utilises comme un simple point tu dois penser à l'échapper avec un anti-slash :


Redirect permanent /en.html -> Redirect permanent /en\.html
Redirect permanent /fr/paravents.html -> Redirect permanent /fr/paravents\.html
RedirectMatch /contact.html -> RedirectMatch /contact\.html


etc...
jb_gfx a écrit :


Pas besoin de mettre de parenthèses (qui servent à capturer une expression). En revanche tu voudras sans doute rajouter un slash après la langue.


RedirectMatch ^/fr/.*  http://www.bonieux.com/html/index.php?lang=fr
 


En revanche le point (.) est un caractère spécial qui signifie &quot;n'importe quel caractère&quot;. Donc dans toutes tes règles où tu l'utilises comme un simple point tu dois penser à l'échapper avec un anti-slash :


Redirect permanent /en.html -&gt; Redirect permanent /en\.html
Redirect permanent /fr/paravents.html -&gt; Redirect permanent /fr/paravents\.html
RedirectMatch /contact.html -&gt; RedirectMatch /contact\.html


etc...

Merci de ta réponse
Je vais revoir mon .htaccess.

En fait j'ai découvert qu'il y avait des pointeurs dans la nature sur de vieilles versions du site dans lesquelles il y avait des /fr/ et des /en/, mais également des /frxxx et des /enxxx
Comme ça fait maintenant près d'un an que j'ai fait la nouvelle version, je crois que je peux d'autant plus supprimer ces lignes que de toute façon j'ai redirigé les erreurs 404 sur la page d'accueil.
Le seul intérêt était d'aiguiller sur la bonne version de la page d'accueil, mais comme elle ne contient qu'un menu et des images, avec des icônes de changement de langue, ça n'a pas beaucoup d'importance.
Modifié par PapyJP (29 Dec 2013 - 12:46)
A propos: je n'ai pas trouvé de tutoriel complet sur .htaccess

Ça marche par tradition orale, copier/coller, etc, ce qui n'est pas très efficace.
J'ai en particulier un .htaccess avec mots de passe dans la partie privée du site dont j'ai dû changer la syntaxe qui paraît-il avait vieilli (!!) en fait plus reconnue par la version x+1 d'Apache.
Quelqu’un connaitrait il un document lisible et complet sur le sujet (en français de préférence)?
Modifié par PapyJP (29 Dec 2013 - 13:13)
jb_gfx a écrit :
Tous simplement la documentation d'Apache disponible sur le site officiel :

http://httpd.apache.org/

Hmm!
Cette documentation semble plutôt destinée aux personnes qui gèrent eux mêmes leurs serveurs.
Pour quelqu'un comme moi, qui utilise des hébergements mutualisés chez online.net et free.fr, j'y trouve difficilement réponse à mes questions. Déjà il n'est pas facile de savoir exactement quelle version d'Apache est installée sur le serveur.
Ensuite, si je cherche ".htaccess", je tombe sur une page Tutoriel du serveur HTTP Apache : fichiers .htaccess qui commence par expliquer qu'il faut éviter d'utiliser les fichiers htaccess et je n'y trouve aucune explication sur "Redirect" et encore moins "Redirect permanent".

Jusqu'à présent j'ai glané d'ici et là quelques infos sur le Aeb, j'ai fait appel au service technqie de l'hébergeur, mais je suis toujours à la peine...