Merge pull request #41 from Alelak/master

Added some missing snippets in the french version
This commit is contained in:
Phan An 2015-02-24 12:46:22 +08:00
commit 547854be7d
1 changed files with 77 additions and 28 deletions

View File

@ -1,53 +1,56 @@
# .htaccess Snippets
Un ensemble de snippets de .htaccess utiles, en un endroit. J'ai décidé de créer ce repo après en avoir eu assez de Googler à chaque fois que je voulais forcer `www` pour mon nouveau site web.
Une collection de morceaux de .htaccess utiles, le tout dans un seul endroit.
**Disclaimer**: Bien que mettre le snippet dans un fichier `.htaccess` est, la plupart du temps, suffisant, certains cas requièrent des modifications. À utiliser à vos propres risques.
**Disclaimer**: Bien que l'extrait mis dans un fichier `.htaccess` est la plupart du temps suffisant, il ya des cas où certaines modifications pourraient être nécessaires. Utilisez à vos propres risques.
**IMPORTANT**: Apache 2.4 a introduit plusieurs changemets, principalement dans la configuration des contrôles d'Accès. Pour plus d'information, vérifiez le [document de mise à jour](https://httpd.apache.org/docs/2.4/upgrading.html) ainsi que [cet issue](https://github.com/phanan/htaccess/issues/2).
** IMPORTANT **: Apache 2.4 a introduit quelques changements de rupture, notamment dans la configuration de contrôle d'accès. Pour plus d'information, consultez le [document de mise à niveau] (https://httpd.apache.org/docs/2.4/upgrading.html) ainsi que [cette issue] (https://github.com/phanan/htaccess/issues/2).
## Crédits
Ce que je fais ici, c'est principalement collecter tous les snippets utiles trouvés partout sur le web (par exemple, un bon morceau provient de [Apache Server Configs](https://github.com/h5bp/server-configs-apache)) . Bien qu'ayant essayé de créditer la bonne personne, des éléments peuvent être manquant. Si vous pensez que quelque chose, ici, provient de votre travail et que vous devriez en être crédité, faites le moi savoir, ou faites une PR.
Ce que nous faisons ici est principalement la collection des extraits utiles de partout sur le web (par exemple, une bonne partie est de [serveur Apache Configs] (https://github.com/h5bp/server-configs-apache)). Bien qu'ayant essayé de créditer la bonne personne, des éléments peuvent être manquant. Si vous pensez que quelque chose, ici, provient de votre travail et que vous devriez en être crédité, faites le moi savoir, ou faites une PR.
## Sommaire
- [Réécriture et redirection](#rewrite-and-redirection)
## Table des Matières
- [Réécriture et la Redirection](#rewrite-and-redirection)
- [Forcer www](#force-www)
- [Forcer www de manière générique](#force-www-in-a-generic-way)
- [Forcer www d'une manière générique](#force-www-in-a-generic-way)
- [Forcer non-www](#force-non-www)
- [Forcer non-www de manière générique](#force-non-www-in-a-generic-way)
- [Forcer non-www d'une manière générique](#force-non-www-in-a-generic-façon)
- [Forcer HTTPS](#force-https)
- [Forcer HTTPS derrière un Proxy](#force-https-behind-a-proxy)
- [Forcer HTTPS Derrière un Proxy](#force-https-behind-a-proxy)
- [Forcer le Slash de fin](#force-trailing-slash)
- [Supprimer le Slash de fin](#remove-trailing-slash)
- [Supprimer Slash](#remove-trailing-slash)
- [Rediriger une Seule Page](#redirect-a-single-page)
- [Alias pour un Seul Dossier](#alias-a-single-directory)
- [Alias de Chemins vers un Script](#alias-paths-to-script)
- [Rediriger un Site Entier](#redirect-an-entire-site)
- [Alias en URLs propres](#alias-clean-urls)
- [Securité](#security)
- [Alias en URLs Propres](#alias-clean-urls)
- [Sécurité](#security)
- [Refuser tout Accès](#deny-all-access)
- [Refuser tout Accès sauf soi-même](#deny-all-access-except-yours)
- [Autoriser tout Accès sauf Spammers'](#allow-all-access-except-spammers)
- [Refuser Accès aux Fichiers et Dossiers Cachés](#deny-access-to-hidden-files-and-directories)
- [Refuser Accès aux Sources et Fichiers de Sauvegarde](#deny-access-to-backup-and-source-files)
- [Refuser l'Accès aux fichiers et Répertoires Cachés](#deny-access-to-hidden-files-and-directories)
- [Refuser l'Accès aux fichiers de Sauvegarde et Source](#deny-access-to-backup-and-source-files)
- [Désactiver la Navigation de Dossier](#disable-directory-browsing)
- [Désactiver le Hotlink des Images](#disable-image-hotlinking)
- [Désactiver le Hotlink des Images pour des Domaines Spécifiques](#disable-image-hotlinking-for-specific-domains)
- [Protéger un Dossier par Mot de Passe](#password-protect-a-directory)
- [Protéger Un ou Plusieurs Fichiers par Mot de Passe](#password-protect-a-file-or-several-files)
- [Performance](#performance)
- [Compresser les Fichiers Texte](#compress-text-files)
- [Donner l'En-tête "Expires"](#set-expires-headers)
- [Désactiver eTags](#turn-etags-off)
- [Divers](#miscellaneous)
- [Mettre en Place des Variables PHP](#set-php-variables)
- [Désactiver les eTags](#turn-etags-off)
- [Divers](#divers)
- [Définition des variables de PHP](#set-php-variables)
- [Pages d'Erreur Personnalisées](#custom-error-pages)
- [Forcer Téléchargement](#force-downloading)
- [Eviter Téléchargement](#prevent-downloading)
- [Forcer le Téléchargement](#force-downloading)
- [Empêcher le Téléchargement](#prevent-downloading)
- [Autoriser les Polices Cross-Domain](#allow-cross-domain-fonts)
- [Encodage UTF-8 Auto](#auto-utf-8-encode)
- [Basculer vers une Autre Version de PHP](#switch-to-another-php-version)
- [Passer à une autre version PHP](#switch-to-another-php-version)
- [Désactiver la Compatibilité De Vue pour Internet Explorer](#disable-internet-explorer-compatibility-view)
- [Servir les Images WebP](#serve-webp-images)
## Réécriture et redirection
Note: Il est requis d'avoir `mod_rewrite` installé et activé.
## Réécriture et Redirection
Remarque: Il est supposé avoir `mod_rewrite` installé et activé.
### Forcer www
``` apacheconf
@ -56,7 +59,7 @@ RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
```
### Forcer www de manière générique
### Forcer www d'une Manière Générique
``` apacheconf
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
@ -66,14 +69,14 @@ RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Cela fonctionne pour _tous_ les domaines. [Source](https://stackoverflow.com/questions/4916222/htaccess-how-to-force-www-in-a-generic-way)
### Forcer non-www
C'est [toujours](http://www.sitepoint.com/domain-www-or-no-www/) [en cours](https://devcenter.heroku.com/articles/apex-domains) [de](http://yes-www.org/) [débat](http://no-www.org/) selon si www ou non-www est la bonne manière de faire, donc si vous êtes un fan de domaine "à nu", ceci est pour vous :
C'est [toujours](http://www.sitepoint.com/domain-www-or-no-www/) [en cours]](https://devcenter.heroku.com/articles/apex-domains) [de](http://yes-www.org/) [débat](http://no-www.org/) selon si www ou non-www est la bonne manière de faire, donc si vous êtes un fan de domaine "à nu", ceci est pour vous :
``` apacheconf
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
```
### Forcer non-www de manière générique
### Forcer non-www d'une Manière Générique
``` apacheconf
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
@ -121,6 +124,11 @@ RewriteRule ^source-directory/(.*) target-directory/$1
```
### Alias de Chemins vers un Script
``` apacheconf
FallbackResource /index.fcgi
```
Cet exemple a un fichier `index.fcgi` dans un répertoire, et toutes les requêtes à l'intérieur de ce dossier qui ne peuvent résoudre le fichier/dossier demandé seront renvoyées vers le script `index.fcgi`.C'est utile si vous voulez que `baz.foo/some/cool/path` à etait manipulé par `baz.foo/index.fcgi` (qui prend également en charge les demandes vers `baz.foo`) tout en maintenant `baz.foo/css/style.css` ou autre fonctionnels. Accédez au chemin d'origine de la variable d'environnement PATH_INFO, comme exposé à votre environnement de scriptage.
``` apacheconf
RewriteEngine On
RewriteRule ^$ index.fcgi/ [QSA,L]
@ -128,7 +136,7 @@ RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]
```
Cet exemple a un fichier `index.fcgi` dans un répertoise, et toutes les requêtes à l'intérieur de ce dossier qui ne peuvent résoudre le fichier/dossier demandé seront renvoyées vers le script `index.fcgi`. C'est utile si vous voulez que `baz.foo/some/cool/path` soit pris en charge par `baz.foo/index.fcgi` (qui supporte aussi les requêtes vers `baz.foo`) tout en maintenant `baz.foo/css/style.css` ou autre fonctionnels.
Ceci est une version moins efficace de la directive du FallbackResource (car l'utilisation de `mod_rewrite` est plus complexe que de maintenir la directive `du FallbackResource`), mais c'est quand même plus flexible.
### Rediriger un Site Entier
``` apacheconf
@ -136,7 +144,7 @@ Redirect 301 / http://newsite.com/
```
Ceci laisse les liens intacts. Ainsi, `www.oldsite.com/some/crazy/link.html` deviendra `www.newsite.com/some/crazy/link.html`. C'est très pratique quand vous voulez "bouger" un site vers un nouveau domaine. [Source](http://css-tricks.com/snippets/htaccess/301-redirects/)
### Alias en URLs "propres"
### Alias en URLs Propres
Ce snippet vous permet d'utiliser les "URLs propres" -- celles sans extension PHP, ex: `example.com/users` à la place de `example.com/users.php`.
``` apacheconf
RewriteEngine On
@ -145,6 +153,7 @@ RewriteRule ^([^.]+)$ $1.php [NC,L]
```
[Source](http://www.abeautifulsite.net/access-pages-without-the-php-extension-using-htaccess/)
## Securité
### Refuser Tout Accès
``` apacheconf
@ -214,6 +223,7 @@ Ces fichiers peuvent être laissés par certains éditeurs texte/html (comme Vi/
```
[Source](https://github.com/h5bp/server-configs-apache)
### Désactiver la Navigation de Dossier
``` apacheconf
Options All -Indexes
@ -222,9 +232,28 @@ Options All -Indexes
### Désactiver le Hotlink des Images
``` apacheconf
RewriteEngine on
# Enlever la ligne Ci-dessous si vous voulez blocker le referrer vide
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]
# Si vous voulez afficher un banner "Blocked" au lieu du Hotlink de l'image,
# replacer Ci-dessus avec cette régle:
# RewriteRule \.(jpg|jpeg|png|gif|bmp) http://yourdomain.com/blocked.png [R,L]
```
### Désactiver le Hotlink des Images pour des Domaines Spécifiques
Parfois vous souhaitez désactiver l'image hotlinking seulement pour quelques méchants. L'extrait suivant devrait vous aider avec ça.
``` apacheconf
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(.+\.)?badsite\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http(s)?://(.+\.)?badsite2\.com [NC,OR]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
# Si vous voulez afficher un banner "Blocked" au lieu du Hotlink de l'image,
# replacer Ci-dessus avec cette régle:
# RewriteRule \.(jpg|jpeg|png|gif|bmp) http://yourdomain.com/blocked.png [R,L]
```
### Protéger un Dossier par Mot de Passe
@ -431,3 +460,23 @@ AddHandler application/x-httpd-php55 .php
# Autrement, vous pouvez utiliser AddType
AddType application/x-httpd-php55 .php
```
### Désactiver la Compatibilité De Vue pour Internet Explorer
La Compatibilité de vue dans IE peut affecter l'affichage de certains sites web. L'extrait suivant devrait forcer IE d'utiliser le moteur d'interprétation Edge et desactiver disable la Compatibilité De Vue.
``` apacheconf
<IfModule mod_headers.c>
BrowserMatch MSIE is-msie
Header set X-UA-Compatible IE=edge env=is-msie
</IfModule>
```
### Servir des Images WebP
Si [WebP images](https://developers.google.com/speed/webp/?csw=1) est supporter et l'image avec l'extension .webp a le meme nom qu'un autre image jpg/png alors l'image Webp sera servi.
``` apacheconf
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
```
[Source](https://github.com/vincentorback/WebP-images-with-htaccess)