#86 - Le fichier .htaccess chez Free "pour les nuls" (1)
Par Gérald Le vendredi 27 juillet 2007 - 20:45 Lien permanent Le Web & ses Points Zéro...
En quelques billets, je vais essayer d'expliquer aux "débutants" l'usage du fichier .htaccess chez Free...
Le fichier .htaccess permet de donner des instructions au serveur. Grace à ce fichier, on va pouvoir contrôler (d'une manière simple) l'accès aux différents répertoires d'un site. Mais toutes les instructions Apache ne sont pas forcément valables chez Free. Commençons cette série par les instructions les plus utilisées...
Pour créer un fichier .htaccess... [1]
Créer directement ce fichier sous Windows n'est pas chose possible. Comme le nom commence par un point (.), Windows considère que ce n'est qu'une extension sans nom de fichier. Il suffit de créer un simple fichier texte, de l'envoyer par FTP et de le renommer directement sur le serveur... D'ailleurs, je précise qu'il ne sera accessible que par FTP !
En général, on le met à la racine du site mais on peut très bien mettre 1 fichier .htaccess par répertoire. Sachant que chaque fichier agit sur son répertoire et ses sous-répertoires, ça peut vite devenir "ingérable" (notamment en cas de "boucle").
Sachez aussi que la moindre "incohérence" dans un fichier .htaccess provoquera une "erreur 500" lors de l'accès au répertoire ou sous-répertoire concerné.
PHP5 chez Free...
Pour avoir PHP5 chez Free (sans renommer tous les fichiers en .php5), il suffit de mettre php 1 dans le fichier .htaccess qui se trouve à la racine du site. Là , je n'apprends peut-être rien à personne...
Rediriger les visiteurs...
L'envie de décourager les "curieux", des pages qu'on déplace, des noms qui changent, une grosse faute d'orthographe dans le titre d'un billet [2] ou juste un site en maintenance ! Bref, pour diverses raisons, on peut avoir besoin de rediriger ses visiteurs. Ces instructions seront toutes placées dans le fichier .htaccess à la racine du site et la redirection sera totalement transparente pour le visiteur :
ErrorDocument 404 URL_absolue
L'erreur 404 signifie "document non trouvé". Ainsi, toute erreur dans l'adresse saisie redirigera automatiquement le visiteur vers l'URL choisie. Ca peut être une page d'erreur ou la page d'accueil. Exemple. D'autres erreurs "HTTP 4xx" peuvent être traitées de la même manière. Voir toutes les erreurs HTTP...Redirect Permanent /ancienne_URL_relative nouvelle_URL_absolue
Vos pages sont déjà indexées par des moteurs mais les "URL" ont été modifiées. Il n'est pas question que des visiteurs se retrouvent sur une page inexistante ! Il faut donc que les demandes vers l'ancienne page soient redirigées vers la nouvelle d'une manière permanente (définitive). Ca permet surtout aux "robots" de mettre à jour les moteurs de recherche.
Un jour, par exemple, j'ai décidé de changer le nom de mes catégories. Dans mon .htaccess (situé à la racine de mon blog), j'ai donc quelques lignes du genre :redirect permanent /index.php/category/Internet http://geraldetsonblog.free.fr/index.php/category/Le-Web-ses-Points-Zero
Voici, par exemple, un lien vers l'ancienne catégorie Internet...Redirect Temp /ancienne_URL_relative nouvelle_URL_absolue
Le visiteur sera redirigé de la même manière, mais une redirection temporaire ne provoquera aucun changement dans les moteurs de recherche.
Dans le cas d'un site "en maintenance", par exemple, on redirige souvent tous les visiteurs vers une même page (au moins pour expliquer le problème). On a généralement une ligne du genre :Redirect Temp / explication_URL_absolue
Précisons sur la syntaxe...
URL_absolue
signifie qu'il faut mettre l'adresse complète (http://www...)/URL_relative
c'est l'adresse sans la racine du site (même si le fichier .htaccess est dans un sous-répertoire). Notez qu'elle commence toujours par un slash (/). Par exemple, l'adresse relative de la pagehttp://geraldetsonblog.free.fr/index.php/contactest/index.php/contact.- Le slash utilisé seul comme
/URL_relativesignifie que la règle s'appliquera à n'importe quelle page du site. - On peut mettre une ligne "en commentaire" en mettant un dièse (
#) en début de ligne. En plus de mettre des commentaires dans son fichier, on peut aussi s'en servir pour rendre une instruction "inactive". La ligne suivante, par exemple, sera totalement ignorée :# Redirect Temp / URL_absolue - Et enfin : les redirections permanentes ou temporaires s'appliqueront dans l'ordre d'écriture. Vos règles devront donc être "hiérarchisées" (de la plus "particulière" à la plus "générale").
C'est tout pour le moment [3]Â ! La suite est dans ce billet...
A bientôt...






![[ClickoBlog]](http://geraldetsonblog.free.fr/public/images/ClickoBlog_sidebar.png)

![[My iPings!]](http://geraldetsonblog.free.fr/public/images/mi04.png)
![[Blog Catalog]](http://geraldetsonblog.free.fr/public/images/blogcatalog.png)
![[Blog Flux]](http://geraldetsonblog.free.fr/public/images/blogflux.png)
![[Bloglines]](http://geraldetsonblog.free.fr/public/images/bloglines.png)
![[MyBlogLog]](http://geraldetsonblog.free.fr/public/images/mybloglog.png)
![[KlikMonBlog]](http://geraldetsonblog.free.fr/public/images/klikmonblog.png)
Commentaires
Salut,
J'ai essayé de suivre tes conseils, ainsi que ceux de freakdev : http://blog.freakdev.com/index.php?...
afin d'installer DC2 sur un compte free.
J'obtiens une erreur 500. Si j'ai bien capté, il s'agit d'un problème sur le fichier .htaccess
Mais ayant suivi à la lettre la création de ce fichier je ne capte pas trop...
Aurais-tu une petite idéee de l'erreur que j'ai pu commettre?
Merci d'avance
Salut !! quand on fait un redirect permanent / , mais vers un dossier du meme site, du coup ca foire , car il redirige tout en boucle et paf !
Comment faire avec du htaccess pour lui dire de renvoyer de / vers /toto
par exemple sur le meme domaine ? c est possible ou pas ?
je pensais a faire un htaccess qui le desactive dans le repertoire /toto, pas réussi ... Merci !
> bH!L: Es-tu sûr que le problème vient bien de ton seul fichier
.htaccess? Car les sites de Free sont parfois joueurs... Si ton problème persiste, je te conseille de repartir à zéro. Il faut que tu rajoutes progressivement les instructions dans ton fichier.htaccessen vérifiant à quel moment ton site plante. D'abordphp 1(indispensable pour avoir du PHP5 et donc faire tourner DC2), puis lesRedirectet enfin les autres règles (parfois très "sensibles"). C'est à venir dans un prochain billet mais je précise que Free ne supporte pas les "Rewrite Rules"... Tu peux aussi m'envoyer ton.htaccesspar mail (geraldetsonblog[at]gmail.com) si tu as un doute...> Pierre:
.htaccess(qui se renvoient la "ba-balle"). Même conseil que pour bH!L : repartir à zéro ! Pour lesRedirect, un seul fichier.htaccesssitué à la racine du site est suffisant (vérifie bien tous tes sous-répertoires). Sinon, tu peux également me l'envoyer par mail...Bonjour, je vien d'instaler un script d'administration des articles.
ce qui est important pour in,staller ce script c'est le fichier .htaccess
mon hebergeur est free.fr
j'ai envoyé ce fichier en mode ASCII mais je vois toujours l'erreur 500.
voici le contenu de ce fichier:
=======================début=======================
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
RewriteEngine on
RewriteRule ^category(.*).html$ index.php?page=category&category_id=$1 L
RewriteRule ^article(.*).html$ index.php?page=article&article_id=$1 L
RewriteRule ^page_(.*).html$ index.php?pagedb=$1 L
RewriteRule ^index.html$ index.php
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
======================= Fin =======================
enfin j'éspere que vous allez m'aider à resoler ce problemen.
.htaccesschez Free est un cas très particulier ! Et toutes les instructions Apache (comme les "Rewrite Rules") ne sont pas forcément supportées par Free ! Par conséquent, ce script ne peut donc pas fonctionner chez Free à l'heure actuelle. Le plus simple serait peut-être de passer un script à la racine du site (PHP ou autre).Désolé...
merci pour votre reponse
est-il possible de transformer ces instructions par des autres qui sont supporter par free, si oui qui sont?
ça marches nickel merci bien pour ce billet cristallin.....
Bonjour à tous,
j'ai mis le fichier htaccess à la racine de mon site avec comme seule ligne
php 1
et pourtant je suis toujours en php 4.4.3, quelqu'un peutt il m'aider je tente d'installer eyeos.
oh merci beaucoup pour le coup du php5 !!
Merci pour le tuyau du "php 1" à rajouter en début de fichier htaccess chez free.fr !
C'est tout simple mais il faut le savoir
Cet article va m'être très utile ^^