Internet > Création web 2 > Restrictions, redirections

Créer sa page web : Restrictions, redirections

 

 

Interdire l'accès au contenu de ses dossiers :

Chez de plus en plus d'hébergeurs, il est impossible d'accéder au contenu d'un dossier d'un site Internet, simplement en rentrant l'adresse du dossier dans le navigateur.
Exemple : http://www.monsite.com/images/

Pour les autres, on pourra utiliser la technique suivante :

 

Pour éviter de rendre accessible le contenu de ses dossiers :

Si le dossier n'est pas protégé, voilà ce qui se produit : n'importe quel utilisateur peut accéder à n'importe quel fichier contenu dans le dossier, même si le fichier n'est pas accessible dans une page ou par lien hypertexte

Créer un fichier index.php

- placer un fichier index.php à l'intérieur de chaque dossier du site que l'on veut protéger.

 

Créer le fichier index.php :

- créer un fichier texte ordinaire avec le Bloc-notes,
- copier-coller le texte suivant :

<?
$VersRacine="..";
include ("$VersRacine/index.htm");
?>

Remplacer index.htm par index.php si c'est le nom du fichier index du site.

- menu Fichier, Enregistrer sous...,
- taper :
index.php

- placer une copie de ce fichier à l'intérieur de chaque dossier du site.

 

Télécharger un fichier index.php :

- si la page index du site est index.htm : cliquer ici
- si la page index du site est index.php : cliquer ici

PS : Sur Orange, l'opération est inutile, car l'accès aux dossiers du site est protégé par défaut.

 

Autres solutions :

"Pour interdire tout accès à un répertoire (qui contient par exemple des includes php), un fichier .htaccess avec l'interdiction de faire du GET, PUT, POST sur le répertoire.

Ou sinon, s'il s'agit juste d'empêcher le listing du répertoire, un fichier .htaccess avec un "Options -Indexes".

En dernier recourt, un bête fichier index.html ou index.php vide placé dans le répertoire (mais à répéter pour toute une arborescence si nécessaire)."

 

Voir aussi :

 

Interdire l'accès avec un fichier .htaccess :

C'est très simple de protéger le contenu d'un dossier avec un fichier .htaccess

Dans le dossier à protéger :

1 - créer un fichier .htaccess avec le contenu suivant :

AuthName "Page privée"
AuthType Basic
AuthUserFile "/adresse_du_dossier//prive/.motdepasse"
Require valid-user

AuthName = Au choix : le message qui s'affiche dans la boîte de dialogue d'authentification
AuthType Basic = précise qu'il faut utiliser AuthUserFile pour l'authentification.
AuthUserFile = adresse absolue du fichier contenant le(s) mot(s) de passe
Require valid-user = type d'authentification

2 - créer un fichier .motdepasse contenant le nom des utilisateurs et le mot de passe associé

titi:...
tata:...
toto:...

 

Voir aussi :

Siteduzero.com - Protéger un dossier avec un .htaccess
Il s'agit de créer une protection par Login / Mot de passe qui empêche l'accès à tous les fichiers du dossier.
Cela se fait avec deux fichiers :
- .htaccess : ce fichier contiendra l'adresse du .htpasswd et quelques autres options que vous pourrez définir. *
- .htpasswd : ce fichier contiendra une liste de logins / mots de passe, pour chaque personne autorisée à accéder aux pages

Commentcamarche.net - Apache - Les fichiers .htaccess

 

 

Hébergement Linux ou Windows :

Sur 1and1 (mais sûrement aussi chez d'autres hébergements) il existe des différences selon que l'on est hébergé sur un serveur Linux ou un serveur Windows

La plupart des hébergements sont sous serveur Linux. C'est un hébergement plus stable et plus simple.

Il faudra en tenir compte pour certaines opérations :
exemple : configuration du fichier .htaccess.

 

Quelle est la différence entre Linux et Windows ?
http://faq.1and1.fr/devenir_client/3.html

 

 

Page d'erreur personnalisée (ex : 404) :

Il existe différentes pages d'erreur :
- 404 = page introuvable (la plus courante)
- 403 - Forbidden = accès interdit
- etc.

Voir :
signification des codes d'erreur HTTP (404, etc)
http://www.webrankinfo.com/outils/faq_8_61.htm

 

La personnalisation est différente :
- selon que l'on a un hébergement Linux ou Windows
- selon que l'on veut rediriger des pages en .HTM ou en .PHP

 

Pour un hébergement Linux :

Personnaliser les pages d'erreurs 401 / 403 / 404
http://faq.1and1.fr/hebergements/4.html

Personnaliser ses pages d'erreurs lors de l'appel de fichiers .php
http://faq.1and1.fr/hebergements/htaccess/10.html

 

Pour un hébergement Windows :

Personnaliser la page d'erreur 404
http://faq.1and1.fr/scripts/asp_net/9.html

 

 

Redirection :

Si on modifie le nom d'une page, il faut également effectuer une redirection.
En effet, s'il existe des liens vers cette page, ou si des visiteurs l'ont ajoutée à leurs favoris, elle ne sera plus accessible. A la place, s'affichera une erreur 404.

Une erreur 404, c'est une page contenant le texte suivant :

"Error 404 - Not found
Le fichier requis n'a pas été trouvé. Il peut s'agir d'une erreur technique. Veuillez réessayer ultérieurement. Si vous ne pouvez pas accéder au fichier après plusieurs tentatives, cela signifie qu'il a été supprimé."

 

PS : En pratique, il vaut mieux, dans la mesure du possible, conserver une page plutôt que de la renommer.Car cela est préjudiciable au référencement de la page sur Internet et les moteurs de recherche. Tant pis donc si le nom est mal trouvé !

Le respect des visiteurs :

Tout cela procède du *respect de ses visiteurs* Si on crée un site, c'est pour qu'il soit visité.
Modifier l'adresse de ses pages sans effectuer de redirection, c'est mépriser ses visiteurs.

 

Il existe plusieurs moyens pour effectuer une redirection automatique :

- En HTML : nécessite de conserver l'ancienne page. C'est la méthode la plus simple pour une page.
- Avec un fichier .htaccess : on peut supprimer l'ancienne page. On peut également rediriger un dossier. C'est la meilleure méthode.
- En PHP

 

 

1 - en HTML :

On utilise la balise : <meta http-equiv refresh>

- on supprime le contenu de l'ancienne page et on le remplace par :

<html>
<head>
<meta http-equiv="refresh" content="1 ; url=http://www.nouvelle.adresse.com">
</head>
<body>
L'adresse de la page est maintenant : http://www.nouvelle.adresse.com
</body>
</html>

www.nouvelle.adresse.com est à remplacer par le nom de la nouvelle page.

 

Inconvénient : On est obligé de conserver l'ancienne page.
Mieux vaut donc utiliser un fichier .htaccess.

 

 

2 - avec un fichier .htaccess :

C'est la meilleure méthode.

On parle de "URL Rewriting" avec les commandes :

RedirectPermanent ou RewriteRule

 

 

- Redirection de page :

 

Exemple :

Redirect permanent /tutos/scanner.php http://www.aidewindows.net/tutos_scanner.php

Ci-dessus : la page scanner.php située dans le dossier tuto est redirigée vers la page tutos_scanner.php située à la racine du site.

Remarquer :
- le chemin d'accès relatif de la page à rediriger
- le chemin d'accès absolu (adresse complète) de la page redirigée.
- l'espace entre les deux.

 

Voir ci-dessous : L'URL Rewriting

 

 

- Redirection de dossier :

On peut rediriger un dossier

C'est bien pratique quand on a réorganisé l'arborescence d'un site, déplacé un dossier image.

Exemple :

RedirectPermanent /rfactor/images/rfactor2 http://cct.aidemac.net/rfactor2/images

Remarquer :
- le chemin d'accès relatif du dossier à rediriger
- le chemin d'accès absolu (adresse complète) du dossier de destination
- l'espace entre les deux.
- pas de slash à la fin de l'adresse

 

 

Redirection 301 = Redirectpermanent - Redirect permanent - Redirect 301

 

Annuaire-info.com - Redirection 301
"La redirection 301 est la meilleure technique de redirection quand une page a changé d'adresse et que vous souhaitez que les moteurs de recherche remplace l'ancienne adresse par la nouvelle dans leur index. "

 

"La redirection 301 est aussi appelée redirection permanente ou redirection définitive (norme, Google, quand l'utiliser, emploi dans .htaccess et en PHP)"

 

REGEX pour une redirection 301 aide pour une REGEX pour redirection 301 dans .htaccess
http://www.webmaster-hub.com/topic/50449-regex-pour-une-redirection-301/

 

 

3 - en PHP :

Si la page à rediriger est en PHP.

<?
header('Location: pageweb.php');
?>

"pageweb.php" est à remplacer par le nom de la page vers laquelle s'effectue la redirection.

 

Voir ma page : Le Php - Rediriger une page web en php

 

 

4 - en javascript :

Solution déconseillée. Car si le javascript a été désactivé sur le navigateur du visiteur, la redirection ne fonctionnera pas.

 

 

Liens :

 

 

Vérification de redirection :

On peut vérifier le bon fonctionnement d'une redirection sur le site Web Sniffer :

Web Sniffer : View HTTP Request and Response Header
http://web-sniffer.net/

 

 

Déplacement d'un site avec Google :

Prévenir Google lorsque votre site est déplacé :
http://www.google.com/support/webmasters/bin/answer.py?hl=fr&answer=83106

 

Si vous avez déplacé votre site vers un nouveau domaine, vous pouvez utiliser l'outil Changement d'adresse pour indiquer votre nouvelle URL à Google. Nous actualiserons notre index afin d'y inclure votre nouvelle URL. Les changements resteront en vigueur pendant 180 jours ; entre-temps, vos pages auront été explorées et indexées sur votre nouvelle URL.

L'outil Changement d'adresse est sans risque, car seuls les propriétaires de site validés peuvent l'utiliser. Vous pouvez faire appel à cet outil à tout moment pour consulter les informations fournies par Google concernant vos domaines.

 

 

URL Rewriting :

L'URL Rewriting permet de réécrire l'adresse des pages web dynamiques afin qu'elles soient prises en compte par les moteurs de recherche.

Cela concerne particulièrement les pages dont le nom est composé automatiquement et qui sont difficiles à retenir.

 

Voir :

Webrankinfo.com - URL Rewriting expliqué aux débutants

Webrankinfo.com - Tutoriel URL Rewriting

webmaster-hub.com - Mod_rewrite, ou la réécriture des URL "à la volée"
"Une des fonctions les plus puissantes permises par le fichier .htaccess est la réécriture « à la volée » des URL. Sur le site officiel Apache, le module mod_rewrite est présenté à raison comme le couteau suisse de la manipulation."

 

04/08/2008 : webrankinfo.com - Présentation de l'URL Rewriting
http://www.webrankinfo.com/dossiers/debutants/url-rewriting
"sur un site qui utilise l'URL Rewriting, on ne peut plus se rendre compte qu'il est basé sur des pages dynamiques. En effet, les URL sont « propres » : elles ne contiennent plus tous les caractères spéciaux comme ? ou &."

Exemple : on remplace la page "article.php?id=12&page=2&rubrique=5" par "article_12_2_5.html"

04/08/2008 : webrankinfo.com - Le guide complet de l'URL Rewriting
http://www.webrankinfo.com/dossiers/techniques/tutoriel-url-rewriting

 

URLrewriting :
http://www.urlrewriting.fr/

.Htaccess rewrites, Mod_Rewrite Tricks and Tips
http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html

Htaccess function (forwarding of page and site)
http://as76.net/en/prg/htaccess.php

 

07/05/2006 : Tutoriel d'URL Rewriting (réécriture de liens)
http://g-rossolini.developpez.com/tutoriels/seo/reecriture-url/

 

Les règles de réécriture seront placée dans le fichier .htaccess

 

 

URL Rewriting et redirection de pages :

On peut avoir besoin de rediriger certains pages d'un site... ou toutes les pages.

Les commandes que j'utilise fonctionnent sur un hébergement chez 1and1.

On utilise un fichier .htaccess

 

Notepad++ :

Pour éditer le fichier .htaccess, j'utilise Notepad++

Voir ma page : Utilitaires bureautique - Notepad++

 

 

Redirection globale :

 

Utilisation :

On a fait son site avec des pages en .HTM.
On voudrait utiliser des fonctionnalités uniquement disponibles avec des pages en .PHP
(exemple : fonction INCLUDE pour intégrer le même menu dans toutes les pages)

On ne peut renommer simplement ses pages.
Car on perdrait son référencement, et tous les liens pointants sur les pages .HTM seraient invalides.

Il faut donc créer une redirection globale de toutes les pages en HTM vers les pages au nom identique en .PHP

 

A mettre dans un fichier .htaccess :

Options +FollowSymLinks
RewriteEngine On RewriteBase /
RewriteRule ^(.*)\.htm$ /$1.php [R=301,L]

 

 

Redirection page :

Pour ne rediriger que certaines pages :

A mettre dans un fichier .htaccess :

Redirect /index.htm http://music.aidemac.net/index.php

Ci-dessus : la page index.htm du site en cours est redirigée vers la page index.php

 

 

Options +MultiViews :

C'est une option qui permet de ne pas spécifier l'extension d'une page (.htm, .html ou .php)

Elle est paramétrable dans le fichier .htaccess

Activer l'option :

Options +Multiviews

Désactiver l'option :

Options -Multiviews

 

Voir aussi :

AutoCompletion des URL et MultiViews
http://www.aide-hebergeur.com/index.php/MultiViews

 

 

.htaccess et robots.txt :

Ce sont deux fichiers que l'on peut être amené à utiliser.
Ils se placent à la racine du site.

Déplacé page suivante : cliquer ici : Les fichiers .htaccess et robots.txt