Htaccess

Cette page rassemble diverses commandes pratiques que l'on peut trouver dans un fichier .htaccess.

Redirection de domaine.tld vers www.domaine.tld

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domaine.tld$
RewriteRule ^(.*) http://www.domaine.tls$1 [QSA,L,R=301]

ou en cas de plusieurs sous-domaines:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domaine.tld$
RewriteRule ^(.*) http://www.domaine.tls$1 [QSA,L,R=301]
Une méthode qui est à mon sens un peu plus propre, c'est de créer un vhost dédié pour cet usage:
<VirtualHost *:80>
        ServerName      domain.com
        ServerAlias      old.domain.com
        RedirectMatch   301  (.*) http://www.domain.com$1
</VirtualHost>

Blocage simple d'un répertoire avec mot de passe

AuthUserFile /var/www/dump/.htpasswd
AuthName "Restricted access"
AuthType Basic
Require valid-user
Pour ajouter un utilisateur:
htpasswd -c /var/www/dump/.htpasswd user1
# Puis toute les autres fois:
htpasswd /var/www/dump/.htpasswd user2

Note:

  • Pour bloquer simplement un répertoire, on n'ajoute pas d'utilisateurs.
  • La commande htpasswd ne prends l'option -c lors de la création du fichier htpasswd.

Configuration rapide

Pour un accès restreint à un dossier, voir les deux fichiers en dessous:

  • Compte: awh
  • Mot de passe: yolfAp4Twi
AuthName "Acces restreint"
AuthType Basic
AuthUserFile ".htpasswd"
Require valid-user

awh:o8AHNbcC0EGq6

Blockage par IP:

Exemple rapide:
# Blocage pour test de perfs: AAREONAAREON-151
<Directory />
        Order Deny,Allow
        Deny from all
        Allow from 89.31.148.58
        #Allow from 89.31.149.185
        Allow from 89.31.149.37
</Directory>

Blocage par IP avec RewriteRules

On utilise ça:
RewriteCond %{REMOTE_HOST} !5.X.42.30
RewriteCond %{REMOTE_HOST} !78.X.163.24
RewriteCond %{HTTP:X-FORWARDED-FOR} !\.domaine\.com

RewriteRule ^(.*)$ /var/www/minisites/maintenance/$1 [L]
#RewriteRule ^(.*)$ http://www.google.com/ [L]
Si on est derrière un load-balancer, il faudra récupérer l'IP source avec l'entête HTTP X-FORWARDED-FOR:
RewriteCond %{HTTP:X-FORWARDED-FOR} !213.215.32.166
RewriteCond %{HTTP:X-FORWARDED-FOR} !195.158.240.0/23

Sécurisation des fichiers sensibles

Ce fichier à mettre dans /etc/apache2/conf.d/ permettra de sécuriser les fichiers les plus sensibles d'un home:

<Files ~ "^\.bash_history"> 
    Order allow,deny 
    Deny from all 
</Files> 

<Files ~ "^\.mysql_history"> 
    Order allow,deny 
    Deny from all 
</Files> 

<Files ~ "^\.ncftp"> 
    Order allow,deny 
    Deny from all 
</Files> 

<Files ~ "^\.vimrc"> 
    Order allow,deny 
    Deny from all 
</Files> 

<Files ~ "^\.bashrc"> 
    Order allow,deny 
    Deny from all 
</Files>

<Files ~ "^\.ssh">
    Order allow,deny
    Deny from all
</Files>

<Directory /var/www>
     Options -Indexes
</Directory>
Page last modified on June 12, 2013, at 12:59 PM EST