Warning: Declaration of Walker_Comment2::start_lvl(&$output, $depth, $args) should be compatible with Walker::start_lvl(&$output, $depth = 0, $args = Array) in /homepages/31/d212983492/htdocs/creetik/blog/wp-content/themes/redtime/functions.php on line 146

Warning: Declaration of Walker_Comment2::end_lvl(&$output, $depth, $args) should be compatible with Walker::end_lvl(&$output, $depth = 0, $args = Array) in /homepages/31/d212983492/htdocs/creetik/blog/wp-content/themes/redtime/functions.php on line 146

Warning: Declaration of Walker_Comment2::start_el(&$output, $comment, $depth, $args) should be compatible with Walker::start_el(&$output, $object, $depth = 0, $args = Array, $current_object_id = 0) in /homepages/31/d212983492/htdocs/creetik/blog/wp-content/themes/redtime/functions.php on line 146

Warning: Declaration of Walker_Comment2::end_el(&$output, $comment, $depth, $args) should be compatible with Walker::end_el(&$output, $object, $depth = 0, $args = Array) in /homepages/31/d212983492/htdocs/creetik/blog/wp-content/themes/redtime/functions.php on line 146
Creetik Blog » html

Featured Post

[Aide] 5 utilitaires online indispensables

Pour ce post je vous propose plusieurs petits outils très utiles qui vous rendront bien des services et qui vous ferons gagner du temps. 1. Favicon Generator Un générateur de favicon en ligne d’après une image gif. Simple et pratique pour créer des .ico rapidement Lien : Dynamicdrive 2. Lorem...

Read More

[ToolBox] +10 snippets .htaccess

Posted by Webmaster | Posted in Conseils Creetik, Ergonomie, html, outils | Posted on 03-07-2011

0

Le fichier .htaccess est LE fichier qu’il faut savoir manipuler pour contrôler assez facilement le serveur Web Apache. Creetik partage avec vous une suite de tweaks concernant ce fichier.

Petit rappel : Le fichier .htaccess sert beaucoup pour configurer le serveur Apache sans trop rentrer dans le code des fichiers de configuration. Vous pouvez notamment protéger l’accès à un répertoire/fichier par un mot de passe, définir des pages 404 personnalisées, mettre son site en maintenance, etc. Ce n’est pas tout et nous allons détailler les méthodes les plus accessibles aux webmasters pour les mettre en place simplement et rapidement.

Avant toute modification du fichier .htaccess, faites une sauvegarde. Ce fichier reste sensible, et on est toujours heureux d’avoir une sauvegarde à portée de click pour revenir à un état stable et fonctionnel.

1. Activer la compression Gzip

Activez la compression gzip et réduisez la bande passante consommée pour l’affichage de votre site jusqu’à 70%. C’est le mode le plus efficace de compression serveur.

# BEGIN GZIP
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
# END GZIP

2. Protection contre le hotlinking

Le hotlinking permet d’afficher du contenu hébergé sur votre site internet depuis un autre site. La problématique se situe au niveau de la bande passante, car c’est bien la votre qui sera consommée. Le fichier .htaccess permet de bloquer cet appel à distance.

RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

3. Des pages personnalisées pour les erreurs HTTP

Les erreurs HTTP 404, 403, 500, etc. sont personnalisables directement depuis le fichier .htaccess. Voici quelque exemples

ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

4. Forcer le téléchargement de certains type de fichiers

Il est parfois utile de forcer le téléchargement de certains fichiers, comme les PDF trop lourds pour etre affichés ou les fichiers vidéos AVI, MPEG, etc qui se lancent dans des players pas adaptés.

AddType application/octet-stream .pdf
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .mov
AddType application/octet-stream .xls
AddType application/octet-stream .doc

5. Supprimer l’extension de vos fichiers dans l’url

Ce snippet réécrit l’url pour enlever l’extension des fichiers dans l’url.
http://www.example.com/about.php affichera http://www.example.com/about

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
# Replace html with your file extension, eg: php, htm, asp

6. Forcer la suppression des www

Pour des questions de SEO, vous pourriez avoir besoin de supprimer les www de votre nom de domaine.
http://www.example.com sera affiché http://example.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !^your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [L,R=301]

7. Récupérer les logs d’erreurs PHP

Grâce à ce snippet, vous allez pouvoir récupérer toutes les erreurs PHP, la seule contrainte de cette solution est de créer d’abord un fichier log sur votre serveur web

# display no errs to user
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log /location/to/php_error.log

8. Mise en maintenance d’un site internet

Mettez en maintenance l’ensemble de votre site sans risque. Ajoutez ce snippet dans le .htaccess et configurez le pour autoriser les adresses IP nécessaires.

RewriteEngine on

# Maintenance Redirection
# Replace 555\.555\.555\.555 with your own IP address
# Uncomment first conditional to turn off the redirection
# RewriteCond %{REQUEST_URI} ^$a
RewriteCond %{REQUEST_URI} !maintenance.html
RewriteCond %{REQUEST_FILENAME} !(styles|images).+$
RewriteCond %{REMOTE_ADDR} !^555\.555\.555\.555$
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteRule (.*) /maintenance.html [R,L]

9. Protéger un dossier par mot de passe

La protection des dossier avec le .htaccess est très efficace. Il faut faudra créer un second fichier .htpasswd contenant les infos d’identification login:motdepasse. Notez que tous les sous-dossier sont concernés par cette restriction d’accès.

AuthType Basic
AuthName "This Area is Password Protected"
AuthUserFile /full/path/to/.htpasswd
Require valid-user

10. Détection Iphone

La détection des userAgent dans le .htaccess permet de rediriger vers la bonne version du site, suivant le support utilisé. Pour filtrer un accès android, modifiez les valeurs correspondantes.

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule .* http://iphone.example.com/ [R]

11. Détection Ipad

Si vous avez besoin de faire une version spécifique de votre site pour les iPad (sans flash par exemple) vous pouvez utiliser le snipper suivant.

RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.yourdomain.com [R=301]

12. Redirection permanente (301)

Pour ajouter une redirection permanente d’un nom de domaine sur un autre, utilisez le snippet suivant. Bien entendu ce snippet fonctionne également pour les autres erreur HTTP, il faut simplement l’adapter à votre cas de figure.

Options +FollowSymLinks
RewriteEngine on

#singlePage
RewriteRule ^oldpage.php http://example.com/newpage.html [R=301,L]

#entireSite
Redirect 301 / http://newsite.com/


13. Bloquez l’accès à vos dossier sensibles

Avec l’utilisation des CMS (et même sans), vous pouvez vous trouver avec des fichiers de configuration sur votre site, il vaut mieux généralement boucler le secteur si vous le voulez pas vous retrouver un jour avec une page blanche à la place de votre site avec un petit message toujours sympathique : « I’ve fucked ». Ce Snippet est à placer dans le dossier que vous souhaiter bloquer.

Deny from all

Ce post centralise la plupart des snippets utilisées par les webmasters pour configurer simplement le serveur Apache. Si vous pensez qu’il manque un snippet essentiel, ou qu’une erreur s’est glissée dans cette page, n’hésitez pas à laisser un commentaire pour me prévenir.
 

Cet article est largement inspiré de plusieurs sources, catswhocode.com, des snippets de css-tricks et de plusieurs forums. Merci à eux.

[Aide] – Rendez votre site accessible à tous

Posted by Webmaster | Posted in Conseils Creetik, css, html, outils | Posted on 07-12-2010

0

Plusieurs modes de validations s’offres à vous, les sites internet mais aussi les plugin des navigateurs peuvent vous aider à corriger les erreurs lors de la validation de vos créations web.

Pourquoi valider son site internet ?

En général, lorsqu’un site internet s’affiche correctement nous ne pensons pas forcément à le valider. La validation du code généré est impératif pour garder une cohérence de développement et une accessibilité accrue.

La validation du code HTML s’impose comme quelque chose d’indispensable, surtout  lorsque le développeur cherche à obtenir un résultat visible de la même façon, par tous, quel que soit le navigateur. Mais pas seulement, les robots des moteurs de recherche doivent également comprendre et analyser la pertinence du contenu. Grâce à la qualité du code analysé, le site sera mieux placé qu’un autre ou l’effort n’a pas été fourni. C’est à ce moment précis que la sémantique HTML prend ton son sens et devient plus qu’importante lors du développement d’un site internet.

Quels outils disponibles pour valider son site ?

Le World Wide Web Consorsium (W3C) est l’organisation régulateur des standards web. L’outil de validation du code HTML que propose le W3C est intéressant, puissant et facile d’utilisation grâce à son mode de détection. De plus le W3C peut également valider le CSS ou encore le format XML.

Le W3C Validator, n’est pas le seul outil pratique, des plugins aussi existent et rendent la validation encore plus accessible puisqu’un seul clic généralement suffit pour détecter toute erreur HTML.

- HTML tidy (développé par Dave Ragget) est un outil indispensable afin de vérifier et nettoyer les fichiers source HTML. Cet outil est actuellement maintenu par une équipe de bénévoles sur Source Forge. Le projet continue à être disponible sous une licence open-source. Vous êtes invités à apporter votre contribution en déclarant des bugs, ou en proposant de nouvelles améliorations sur cette page Source Forge.

- XHTML-CSS : Valide et corrige le HTML et le CSS attaché à une URL. Le point fort de cet outil c’est la validation des 2 langages en même temps. Vous pouvez accéder à ce site par le biais de ce lien.

- W3C CSS Validator : Un outil également développé par le W3C vous sera utile pour valider et à corriger vos feuilles de styles CSS. Il est accessible à partir de ce lien.

- W3C Feed Validator : Le dernier outil proposé par le W3C vous servira à valider vos flux RSS générés et vous proposera des solutions pour corriger vos erreurs. Cet outil garantie que vos flux soient interprétés correctement quel que soit le lecteur de flux utilisé. Cet outil est accessible à partir de ce lien.

Quelles erreurs sont fréquemment rencontrées ?

Les erreurs les plus fréquentes sont souvent des erreurs d’inattention des développeurs web. La plupart des erreurs présentées ci-dessous peuvent-être corrigées en quelques minutes seulement.

La plus lourde de conséquence en terme d’interprétation de votre page par les navigateurs est celle portant sur la déclaration du DOCTYPE. Cette déclaration permet de déterminer la version html utilisée et son mode de d’interprétation, sans cette information tout outil de validation ne pourra vous aider. Il ne reconnaîtra tout simplement pas la version actuelle de la page que vous tentez de valider.  Vous pouvez consulter les différents DOCTYPE à utiliser suivant vos contraintes sur cette page.

Les balises HTML restées ouvertes

Cet oubli comporte plusieurs conséquences plus ou moins grave. Des problèmes de mises en pages peuvent intervenir suivant le navigateur utilisé. Le message que vous risquez de rencontrer lorsqu’un tel oubli à été fait est le suivant :

end tag for “p” omitted, but OMITTAG NO was specified

Dans cet exemple, c’est la balise <p> qui ne trouve pas sa balise fermante </p>. Généralement un numéro de ligne pourra vous aider, utile en cas de html pur, mais lorsque votre site est dynamique vous pouvez ajouter le contexte de l’erreur ce qui ajoutera quelques lignes avant et après l’erreur afin de mieux la cibler.

Dans le même registre, on peut également trouver des erreurs au sujet des balises « auto-fermantes ». Simplement, ce sont les balises qui ne nécessitent pas de balises fermantes comme par exemple les balises <IMG /> ou <INPUT/>. L’erreur affichée par le validateur sera la même que la précédente. Pour résoudre cette erreur, il vous suffira d’ajouter un slash à la fin de la balise concernée pour qu’elle se ferme automatiquement.

Les caractères spéciaux non encodés

Dans ce cas d’erreur, la plus régulièrement mise en avant est celle du caractère & présent dans les url. Ces caractères sont souvent indispensables au bon fonctionnement de votre site puisqu’ils transmettent des paramètres. Voici l’erreur type :

Reference to « link » for which no system identifier could be generated

Afin de corriger cette erreur rapidement, vous devrez encoder les caractères spéciaux en html.  Par exemple pour l’utilisation du & dans un lien vous devrez l’encoder et le remplacer par &amp; il sera ainsi interprété de la bonne manière.

Non respect du type naturel des balises HTML

Les natures par défaut des balises sont importantes dans la sémantique HTML. 2 types  de balises s’imposent, les balises de type inline (<a>, <strong>, <em>, etc), et les balises de type block (<div>, <p>, <h1>, etc). Par définition, une balise de type block peut contenir une balise de type inline, mais pas l’inverse. Ceci est une règle de  sémantique, elle n’est pas liée au css que l’on pourrait appliquer à une balise de type block, par exemple la balise <p> à laquelle on ajoute la propriété display:inline; Dans ce cas, vous obtiendrez cette erreur :

document type does not allow element « div » here

Corriger ces erreurs est primordiale, il faut absolument respecter la sémantique HTML et la nature par défaut des balises que vous utilisez.

Texte alternatif inexistant

Le paramètre ALT de la balise <img/> est souvent mis de coté,  une erreur classique d’une image non référencée. Cet oubli va générer autant d’erreur que de balises <img/> ou ce paramètre manque.  Voici l’erreur en question :

required attribute « alt » not specified

Pour supprimer ces erreurs de validation, il vous suffira de remplir pour chaque image l’attribut ALT. Ainsi vos images seront correctement interprétées par les robots et seront prochainement référencées.

Les attributs width and height en paramètres

Ces paramètres de tailles sont souvent utilisés à toutes les sauces pour contraindre les éléments HTML à prendre une certaine taille. Cependant leurs utilisations sont restreintes suivant le DOCTYPE utilisé. En mode Transitional par exemple, le validateur ne les affichera pas comme des erreurs mais plutôt comme des alertes, alors qu’en mode Strict il affichera pour chaque image, une erreur à corriger. Ceci étant dit, l’utilisation des paramètres width et height sont fortement déconseillés car il est chronophage d’attribuer des valeurs de taille à une image avec cette méthode. L’élément HTML qui supporte le mieux ces paramètres est la balise <td>. Si vous obtenez cette erreur c’est que vous êtes dans ce cas :

there is no attribute « width »

Pour corriger ce type d’erreur, vous pouvez attribuer une taille d’image directement depuis le CSS ou encore appliquer un script/plugin de redimensionnement des images, le meilleur cas étant en PHP car il affichera les images directement à la bonne taille sans besoin d’ajouter les attributs width et height.

Les noms de classe ou d’id commençant par des chiffres

Ce type d’erreur est trés facile à corriger, car il n’y a pas d’alternative à cette contrainte. Les noms de classes CSS ou d’id ne peuvent commencer par des chiffres. Si vous êtes dans ce cas de figure, vous obtiendrez cette erreur :

Value of attribute « id » invalid : « 2 » connot start a name

Conclusion

J’espère que cet article vous sera utile pour corriger vos erreurs HTML les plus courantes afin que vous ayez le plus de pages valides. Ainsi vous améliorerez la sémantique HTML de votre site, son référencement par les bots de recherches et vous apporterez également une bonne dose d’accessibilité.

Cet article est inspiré d’un excellent article de line25.com source