<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blackotine &#187; Apache</title>
	<atom:link href="http://www.blackotine.fr/category/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://www.blackotine.fr</link>
	<description>Blog d&#039;un intégrateur et développeur Web</description>
	<lastBuildDate>Wed, 07 Apr 2010 16:56:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Les fichiers .htaccess, exemples et astuces</title>
		<link>http://www.blackotine.fr/apache/exemples-htaccess</link>
		<comments>http://www.blackotine.fr/apache/exemples-htaccess#comments</comments>
		<pubDate>Sun, 08 Feb 2009 23:39:02 +0000</pubDate>
		<dc:creator>nico</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[htaccess]]></category>

		<guid isPermaLink="false">http://www.blackotine.fr/?p=130</guid>
		<description><![CDATA[Les fichiers .htaccess sont de puissants outils permettant de modifier la configuration du serveur web Apache de manière localisée, pour un site voire, pour un répertoire.
Voici quelques exemples utiles à utiliser sur vos sites.
Attention toutefois, car la moindre erreur de syntaxe provoquera une erreur interne sur le serveur et rendra votre site indisponible.  Pensez [...]]]></description>
			<content:encoded><![CDATA[<p>Les fichiers <a href="http://fr.wikipedia.org/wiki/Htaccess"><strong>.htaccess</strong></a> sont de puissants outils permettant de modifier la configuration du <a href="http://fr.wikipedia.org/wiki/Apache_(logiciel)">serveur web Apache</a> de manière localisée, pour un site voire, pour un répertoire.</p>
<p>Voici quelques exemples utiles à utiliser sur vos sites.<br />
Attention toutefois, car la moindre erreur de syntaxe provoquera une erreur interne sur le serveur et rendra votre site indisponible.  Pensez donc à toujours garder une copie de sauvegarde permettant de revenir en arrière.<span id="more-130"></span></p>
<h3>Création du fichier :</h3>
<p>Il suffit de créer un fichier avec n&#8217;importe quel éditeur de texte et de le nommer <em>.htaccess</em>, sans extension. Sous Windows, il est impossible de créer un fichier .htaccess. Si vous avez des difficultés, vous pouvez utiliser un autre explorateur de fichier comme, par exemple, un logiciel de transfert FTP du type <a href="http://www.filezilla.fr/">Filezilla</a></p>
<p>Ensuite, il faudra mettre ce fichier à la racine d&#8217;un répertoire pour que les règles qu&#8217;il contient s&#8217;appliquent à tous les sous-répertoires.</p>
<h3>Créer une page d&#8217;erreur personnalisée</h3>
<p>Bien souvent, on néglige ces pages par manque de temps ou d&#8217;intérêt. Elles sont pourtant très importantes car elles permettent aux visiteurs de rester sur  le site. On peut alors, par exemple, choisir de le réorienter par le biais d&#8217;un plan de site.</p>
<p>Dans le fichier .htaccess il suffit d&#8217;inscrire ces lignes</p>
<pre class="brush: sql">ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
</pre>
<h3>Comment faire pour configurer le fuseau horaire sur votre serveur</h3>
<pre class="brush: sql">SetEnv TZ Europe/Paris</pre>
<h3>Bloquer des adresses IP</h3>
<p>Permet d&#8217;empêcher certaines adresses IP d&#8217;accéder à la totalité de votre site ou un répertoire.</p>
<pre class="brush: sql">allow from all
deny from 145.186.14.122
deny from 124.15</pre>
<p>Quand quelqu&#8217;un essaiera d&#8217;accéder à votre site à partir de l&#8217;IP interdite, il verra un message d&#8217;erreur 403 &laquo;&nbsp;accès interdit&nbsp;&raquo;.</p>
<h3>Redirections permanentes</h3>
<p>Très utilisées pour la <acronym title="Search Engine Optimization" lang="uk">SEO</acronym>, les redirections permanentes 301 pour les mauvais ou anciens liens déplacés ou supprimés.</p>
<pre class="brush: sql">Redirect 301 /mapage.html http://www.monsite.com/manouvellepage.html</pre>
<h3>Redirections de domaine</h3>
<p>Pour rediriger chacune des pages d&#8217;un domaine vers la même page sur un autre domaine.</p>
<pre class="brush: sql">RewriteCond %{HTTP_HOST} ^www\.mon-site\.com [NC]
RewriteRule ^(.*)$ http://www.mon-site.fr/$1 [QSA,R=301]</pre>
<h3>E-mail de l&#8217;administrateur du serveur</h3>
<p>Utiliser ce code, pour spécifier l&#8217;adresse e-mail par défaut de l&#8217;administrateur du serveur.</p>
<pre class="brush: sql">ServerSignature EMail
SetEnv SERVER_ADMIN monadresse@monsite.com</pre>
<h3>Protéger ses images</h3>
<p>Utile pour empêcher qu&#8217;une personne ne fasse un lien direct de son site pour afficher des images hébergées sur votre propre serveur. Bien souvent aucune autorisation n&#8217;est demandée et cela pose donc des problèmes de droits, sans compter qu&#8217;il utilise la bande passante de votre serveur.<br />
Le code suivant peut empêcher cela.</p>
<pre class="brush: sql">
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?monsite\.com/ [nc]
RewriteRule .*\.(gif|jpg|png)$ http://www.monsite.com/images/images-de-substitution.jpg [nc]
</pre>
<h3>Rendre tout un site indisponible pour maintenance</h3>
<p>Il est intéressant de pouvoir à tout moment basculer un site en maintenance et être le seul à pouvoir naviguer sur celui-ci.</p>
<pre class="brush: sql">
RewriteEngine on
RewriteRule maintenance\.html - [L]
RewriteCond %{REMOTE_ADDR} !82.288.56.587
RewriteRule .* /maintenance.html [L]
</pre>
<h3>Empêcher le listage des répertoires</h3>
<p>Habituellement, si votre site ne dispose pas d&#8217;une page d&#8217;index par défaut tous les fichiers de ce répertoire sont accessibles aux visiteurs. Pour éviter cela utilisez le code suivant.</p>
<pre class="brush: sql">
Options All -Indexes
</pre>
<h3>Page par défaut</h3>
<p>Vous pouvez définir la page par défaut d&#8217;un répertoire comme vous le souhaitez. Par exemple, dans ce code, la page par défaut est contact.html au lieu de index.html</p>
<pre class="brush: sql">
DirectoryIndex contact.html
</pre>
<h3>Protéger vos répertoires et fichiers</h3>
<p>Vous pouvez créer une demande d&#8217;authentification pour l&#8217;accès à certains fichiers et répertoires. Voici deux exemples de protection par mot de passe, un pour un fichier et l&#8217;autre pour un répertoire. Le fichier .htpasswd est un fichier texte devant contenir sur chacune des ses lignes un nom d&#8217;utilisateur suivi de deux points (:), puis du mot de passe crypté (solution recommandée) ou en clair. Pour crypter le mot de passe, Apache fournit un outil, l&#8217;utilitaire htpasswd accessible dans le sous-répertoire bin d&#8217;Apache. Il est également recommandé de placer ce fichier en dehors de l&#8217;arborescence du site.</p>
<pre class="brush: sql">
# Protéger un  fichier

AuthType Basic
AuthName &amp;quot;Accès restreint&amp;quot;
AuthUserFile /home/path/.htpasswd
Require valid-user

# Protéger un répertoire
AuthType basic
AuthName &amp;quot;Accès restreint&amp;quot;
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user
</pre>
<h3>Masquer ou afficher les erreurs php</h3>
<p>Par défaut, le valeur du paramètre PHP &laquo;&nbsp;display_errors&nbsp;&raquo; est &laquo;&nbsp;on&nbsp;&raquo;. La plupart du temps ces messages d&#8217;erreurs contiennent des informations sensibles qu&#8217;il est préférable de masquer sur un site en production. Pour masquer les erreurs, ajouter simplement :</p>
<pre class="brush: sql">
php_flag display_errors off
</pre>
<h3>Pour Conclure</h3>
<p>Ce petit fichier est extrêmement pratique et puissant. Le nombre d&#8217;applications possibles est important. Ainsi, j&#8217;éditerai ce billet régulièrement pour y ajouter des exemples utiles. N&#8217;hésitez donc pas à proposer les vôtres.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blackotine.fr/apache/exemples-htaccess/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
