Categorie Apache...

Rubrique Apache

Voir la liste des hôtes virtuels (virtual hosts) actuellement configurés sur Apache 2

Catégorie Apache

Pour voir la liste des hôtes virtuels (virtual hosts) actuellement configurés sur votre serveur Apache 2, vous pouvez écumer un à un les fichiers de votre répertoire /etc/apache2/sites-available/ à la recherche du bon VirtualHost, mais ça peut être long, très long…

Sinon, vous pouvez bêtement exécuter la commande:

apache2ctl -S

qui vous renverra une jolie liste de ServerName avec le nom du fichier vhost correspondant dans /etc/apache2/sites-enabled/.

En revanche, et c’est la limitation de cette commande, elle ne vous donnera pas les ServerAlias, ni les DocumentRoot contenant le chemin de destination du vhost…

Rubrique Apache

Rediriger votre domaine sans www. vers son équivalent avec www. grâce au fichier .htaccess

Catégories Apache, Référencement

Si vous êtes sensibilisé un tant soit peu au référencement de site, vous devez savoir qu’un moteur de recherche comme Google a horreur des pages en plusieurs exemplaires, ce qu’on appelle du contenu dupliqué (duplicate content).

Mais là où on fait rarement attention, c’est que ça peut arriver très facilement à cause de votre nom de domaine. En effet, votre site à normalement comme adresse http://www.mondomaine.com, mais les 3/4 du temps, http://mondomaine.com (sans www.) fonctionnera aussi, et vous affichera exactement la même chose! Et bam! Pages dupliquées!

Pour corriger ça simplement, vous pouvez utiliser la réécriture d’url. Pour cela, quelques lignes dans le fichier .htaccess à la racine de votre site:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^mondomaine.com$
RewriteRule ^(.*)    http://www.mondomaine.com/$1   [QSA,L,R=301]

Grâce à ces quelques lignes toutes les pages de mondomaine.com vont être redirigées proprement vers leur équivalent sur www.mondomaine.com grâce à des redirection 301.

Autre possibilité, rediriger tout ce qui n’est pas www.mondomaine.com vers www.mondomaine.com, quelque-soit le sous-domaine:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^www.mondomaine.com$
RewriteRule ^(.*)    http://www.mondomaine.com/$1   [QSA,L,R=301]
Rubrique Apache

Forcer une image (ou autre type de fichier) à se télécharger au lieu de s’afficher dans le navigateur Internet

Catégorie Apache

Normalement, quand vous mettez un lien vers une image, et que vous cliquez dessus, celle-ci s’affiche dans votre navigateur Internet.

Mais vous pouvez vouloir que l’internaute télécharge l’image plutôt que de l’afficher. Eh bien c’est possible, et ça se passe dans le fichier .htaccess.

D’abord, je vous conseille de mettre les images que vous voulez faire télécharger dans un dossier à part. Celui-ci aura son propre fichier .htaccess pour obliger les images qui sont à l’intérieur à se télécharger.

Voici le code à mettre dans le fichier .htaccess:

<FilesMatch "\.(?i:jpg)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>
<FilesMatch "\.(?i:gif)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>
<FilesMatch "\.(?i:png)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

Comme vous pouvez le voir, ça gérera les fichiers avec les extensions .jpg, .gif et .png. Néanmoins, la même astuce est applicable à n’importe quel autre type de fichier, à vous d’y ajouter l’extension dont vous avez besoin!

Rubrique Apache

N’autoriser qu’une seule IP à accéder à un site grâce au fichier .htaccess

Catégorie Apache

Quand on développe un site, on désire souvent que son travail reste secret jusqu’à ce qu’il soit terminé. Pour cela vous avez plusieurs possibilités. Vous pouvez par exemple y mettre un mot de passe, ou travailler en local. Moi, j’aime bien n’autoriser que mon IP. Pas de mot de passe, et tous les postes qui sont associés à cette adresse IP peuvent ouvrir facilement le site en développement.

Pour cela, il suffit de quelques lignes dans votre fichier .htaccess:

Order Deny,Allow
Allow from XX.XXX.XX.XX
Deny from all

Concrètement, vous allez dire à votre serveur Apache de lire d’abord les directives Deny (qui interdit toutes les IPs), puis de n’autoriser que celle mentionnées dans la directive Allow.

Vous pouvez bien entendu mettre plusieurs lignes Allow à la suite pour autoriser plusieurs adresses IPs:

Order Deny,Allow
Allow from XXX.XXX.XXX.XXX
Allow from YYY.YYY.YYY.YYY
Deny from all

Et si vous ne connaissez pas votre adresse IP, vous pouvez aller sur cette page