Aller au contenu

Le fichier .htaccess


Sujets conseillés

Vous changez d'hébergeur et de nom de domaine ?

Vous voulez garder le bénéfice du référencement de vos anciennes pages ?

Alors vous aurez plus que vraisemblablement besoin de mettre quelques redirections en place.

Découvrez les 1001 facettes du fichier .htaccess

Lisez l'article en ligne sur le fichier .htaccess et intervenez avec vos questions et commentaires ci-après.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...
  • Réponses 120
  • Créé
  • Dernière réponse

Contributeurs actifs dans ce sujet

Contributeurs actifs dans ce sujet

Images postées

Pour les redirections qui concernent les pages qui ont changé d'adresse, le code est RedirectPermanent ancien.html http://www.domaine.tld/nouveau.html

Dans un cas précis

Ancienne url présente dans Google : h**p://www.conseilgeneral.com/mairies.htm

Nouvelle url pour remplacer : h**p://www.conseilgeneral.com/mairies/mairies.htm :huh: J'ai donc mis ce code:

RedirectPermanent mairies.htm h**p://www.conseilgeneral.com/mairies/mairies.htm (sur une seule ligne)

Ca ne fonctionne pas.

Ou est l'erreur de code ?

Au passage j'ai 137 url indéxé dans Google qui ont changées d'adresse et je transpire deja a l'idée d'écrire ces 137 lignes :rolleyes:

Un google plus musclé détectant une erreur 404 pourrait aller chercher la nouvelle Url de lui même ;)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Dan,

OUF, j'ai fini de faire les 137 redirections de mes pages dans le fichier htaccess.

On a beau croire aux machines et réver un peu pour les miracles il faut quand même bosser !

Merci pour tes conseils

A+

Lien vers le commentaire
Partager sur d’autres sites

On a beau croire aux machines et réver un peu pour les miracles il faut quand même bosser !

...Ou encore vraiment bien maîtriser les expressions régulières.

J'ai un article traitant des regex "sur le feu". Il permettra de dégrossir le sujet pour nombre d'entre vous.

Mais tu te doutes bien qu'avec les exemples, ça ne s'écrit pas aussi vite que de la simple prose. ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Bonjour le hub

Je voudrais utiliser mon espace ftp pour y placer des fichiers à télécgarger en anonyme.

Pour celà je pense créer des répertoires distincts et y mettre les fichiers (un peu de rangement).

Je me demande si il est possible par un .htaccess de proteger la racine de chaque répertoire, histoire de ne pas permettre la navigation d'un répertoire à l'autre.

Si le .htaccess est permis, a t'il la même syntaxe que le .htaccess de l'espace web

Merci

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Olivier.

Je l'ai fait v'la deux jours après avoir lu les conseils de Dan sur le .htaccess et ça a l'air de bien fonctionner. Si tu places un .htaccess dans un quelconque répertoire, ou sous répertoire, toute la suite de l'arborescence est bien bloquée si tu n'as pas le mot de passe. J'ai fait simple : en combinant un fichier contenant le "pass" avec le fichier .htaccess

Au début, j'avais mal compris les explications de Dan. En fait, tu peux placer autant de .htaccess et de codes d'accès que de répertoires. Bien sur, c'est inutile pour la suite de l'arborescence.

Dino

Modifié par Dinostrate
Lien vers le commentaire
Partager sur d’autres sites

Salut Olivier et Dino,

Il ne faut pas confondre les protocoles http et ftp car ils ne répondent pas aux mêmes mêmes règles en matière de protection.

Le fichier .htaccess ne peut jouer son rôle de "chien de garde" que dans le cas du potocole http... sinon vous auriez des problèmes pour accéder par ftp aux répertoires contenant un fichier .htaccess sur votre espace web, non ? ;)

Protéger un accès ftp passe par des permissions de répertoires, mais comme dans le cas d'Olivier, l'accès est un accès ftp anonyme sur serveur mutualisé, cette solution ne peut s'appliquer. Cela ne s'applique qu'aux accès ftp avec utilisateur identifié, ou aux serveurs ftp que l'on peut complètement paramétrer.

Une solution serait d'accéder au téléchargements de fichiers à travers un script php qui pourrait limiter les dégâts...

Il faut en tout cas s'assurer de ne pas laisser le droit d'écriture aux visiteurs anonymes pour ne pas voir cet espace ftp utilisé pour stocker des programmes ou fichiers illégaux. (ou W*R*Z ... mais je n'ai pas vraiment envie que le Hub ressorte pour ce mot dans Google ;) )

Dan

Lien vers le commentaire
Partager sur d’autres sites

Salut Dan

Tu me rassures

Il s'agit d'espace identiques mais de protocole differents, donc d'acces differents.

J'ai mis des droits en 755 à un répertoire et l'acces sera géré par un fichier php

Je voulais interdire l'acces à la navigation dans d'autres répertoire que ceux du thème, mais je crois comprendre que c'est plutôt limité en anonyme, (à moins de mettre des login/password, mais je ne le gère pas sur la partie web)

Le problème est que par le navigateur je ne vois même pas le répertoire que je viens de mettre. :blink:

Lien vers le commentaire
Partager sur d’autres sites

Le problème est que par le navigateur je ne vois même pas le répertoire que je viens de mettre.  :blink:

Salut Olivier,

Plus que vraisemblablement parce que le protocole http n'est pas supporté sur les serveurs ftp anonyme d'OVH...

Si tu émets un lien vers un fichier du style <a href=ftp://domaine.tld/fichier.ext> , le vois-tu ?

Dan

Lien vers le commentaire
Partager sur d’autres sites

Dan

Le procotole http sur du ftp anonyme chez ovh sur un plan identique au mien est accepté. De la racine on ne voit pas les répertoires, mais si on connait un nom de répertoire, on peut y entrer et naviguer.

De mon coté, je vois bien la racine, mais pas le répertoire, ni le fichier.

Je vais me renseigner auprés du webmaster dont le ftp ou IE fonctionne

Merci

[Edit : Problème résolu !]

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

j'écris parce que je me dis que je mérite po DU TOUT mon diplome d'ingé.

j'ai tout suivi le truc ...

(je file les fichiers que j'ai tapé ca sera plus clair)

En connexion FTP, mon site est de la forme :

/www/admin ...

les fichiers du site sont placés dans /www

.htaccess placé dans /www/admin

AuthUserFile /www/.htpasswd

AuthGroupFile /dev/null

AuthName "Acces Restreint"

AuthType Basic

<Limit GET POST>

require valid-user

</Limit>

.password placé dans /www

(mot de passe 'a')

admin:20Fr4vjmM8dZE

j'ai utilisé le prog en lien dans le cours pour générer le mot de passe ...

Et je n'arrive pas à accéder au répertoire admin de mon site ...

avec le login admin et le mot de passe XXXXXX, je suis rejeté 3 fois et puis j'ai l'erreur :

Authorization Required

This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.

Alors suis-je fou ? neuneu ? ou alors il y a un bug ???

Modifié par gagaches
Lien vers le commentaire
Partager sur d’autres sites

Salut Gagaches, et bienvenue à bord du Hub,

Pas besoin de diplôme d'ingé pour mettre une restriction .htaccess ;)

Mais il faut bien lire l'article...

Tu mets

AuthUserFile /www/.htpasswd

alors qu'il faut mettre un chemin serveur, depuis la racine... c'est à dire, le plus souvent quelque chose comme /home/ton_login/www/.htpasswd

Si tu es chez OVH c'est cette forme là, sinon le plus simple est encore de lancer un script php avec:

<?php 
echo $_SERVER['DOCUMENT_ROOT'];
?>

pour trouver la racine de ton site et adapter.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Une précision toutefois... chez certains hébergeurs, dont Online, le mot de passe n'est pas encrypté, et la syntaxe varie pour le .htaccess car ils utilisent une protection non standard.

Le .htaccess est dans ce cas de la forme:

PerlSetVar AuthFile secret/passlist 
AuthName "Acces Restreint"
AuthType Basic

<limit GET POST>
require valid-user
</limit>

et le PerlSetVar AuthFile secret/passlist doit avoir une adresse relative par rapport à la racine de ton site, et non celle du serveur.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

pour le cas où l'on met un 'rewrite rule', et un 'errordocument', lequel des 2 placer devant ?

et est ce que la regle du [L] est valable pour le errordocument

merci ;)

Modifié par anonymus
Lien vers le commentaire
Partager sur d’autres sites

Une question me turlupine la tête en cas de sous-domaine.

Peut-on utiliser un fichier ".htaccess" different par sous domaine ?

Car quand on regarde l'arborescence d'un site les logiciels tienne compte des sous-domaines et ne montre pas les dossier associés.....

Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...
Bonjour Olivier.

Au début, j'avais mal compris les explications de Dan. En fait, tu peux placer autant de .htaccess et de codes d'accès que de répertoires. Dino

Dino écrivait voilà quelques mois à Olivier : « J'ai fait simple : en combinant un fichier contenant le "pass" avec le fichier .htaccess Au début, j'avais mal compris les explications de Dan. »

J'ai besoin d'installer un accès restreint, mais je suis sur Online. J'ai suivi l'article de Dan, mais je bute sur les mots home et login pour renseigner la première ligne du fichier .htaccess. Je souhaite protéger une URL complète. Et dans le .htpasswd, je rebute encore plus sur le cryptage.

Quelqu'un pourrait-il m'aider ? Cordialement,

Un internaute dans le cirage, [Priape]

Lien vers le commentaire
Partager sur d’autres sites

Salut Priape, et bienvenue a bord du Hub !

Chez Online, c'est un peu particulier comme les mots de passe ne sont pas encryptés.

Tu as donc 2 fichiers, comme partout ailleurs...

Le fichier contenant les mots de passe (par exemple: secret/passlist) avec une ligne par utilisateur/mot de passe (en clair):

boss:PasSw0rd 
paul:SecR3t
pierre:MotDePaSsE

Le fichier .htaccess, dans le répertoire que tu veux protéger:

PerlSetVar AuthFile secret/passlist 
AuthName "Acces Restreint"
AuthType Basic
<limit GET POST>
require valid-user
</limit>

Le chemin donné dans l'exmple ci-dessus suppose que le fichier contenant les mots de passe s'appelle "passlist" et se trouve dans le répertoire "secret" à la racine de ton site.. tu peux bien sûr changer cela.

Il est conseillé de protéger ce répertoire en y mettant aussi un fichier .htaccess avec une seule ligne:

Deny From All

Dan

Lien vers le commentaire
Partager sur d’autres sites

Merci pour la promptitude et l'exactitude de la réponse.

J'ai exécuté, en vain.

Je veux protéger un site de quelques pages. J'ai en conséquence créé un fichier .htaccess que j'ai placé (étant en mac + Dreamweaver) sur la racine de ce site. Puis j'ai constitué un dossier "secret" contenant le fichier en php 'passlist' (ainsi nommé, court) + un fichier en php contenant la ligne conseillée, nommé à nouveau .htaccess.

C'est avec ce strict (mais sans doute trop ignorant) respect de ces règles que je bute.

Est-ce encore possible de me débloquer sur ce point ? Où suis-je bouché ?

Très cordialement,

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
Guest Gloom

A propos de l'article:

En plus de lerreur 404, vous pouvez donc fournir des pages spécifiques pour les erreurs les plus fréquentes, par exemple :

401 - Autorisation Requise

400 - Mauvaise requête

403 - Interdit

500 - Erreur interne serveur

Il me semble qu'une erreur 500 ne peut-être provoquée que par une erreur dans le .htaccess donc, si il y a erreur, le .htaccess ne marche pas, je ne vois donc pas l'interret de faire une page d'erreur 500 puisqu'elle ne sera pas affichée, à moins d'avoir un .htaccess à la racine définissant les pages d'erreur et des .htaccess spécifique dans certains réperdoire. Bref, ça ne me parrais si rarement utile que je me dis que ça ne vaut pas la peine de le mentionner.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant

×
×
  • Créer...