Designers & Guide du développeur pour .htaccess
Parmi les nombreux outils de personnalisation de votre serveur Web, le fichier de configuration .htaccess est un atout formidable. Vous pouvez rapidement réinitialiser les types de document, les moteurs d'analyse, les redirections d'URL et bien d'autres fonctionnalités essentielles. Les webmasters qui ne sont pas très techniques peuvent ne pas entrer dans les détails de la gestion de votre propre fichier .htaccess. Mais le sujet lui-même est fascinant et mérite d'être étudié.
Pour cet article, je veux présenter certains des concepts les plus utiles pour les webmasters et les développeurs web. Toute personne qui lance son propre site Web sur un serveur Apache voudra certainement comprendre comment gérer son fichier .htaccess. Il offre tellement de possibilité de personnalisation et peut fonctionner à travers les langages web de PHP à Ruby.
Au bas de ce post, j'ai ajouté quelques applications web externes pour aider les nouveaux arrivants à générer leurs fichiers .htaccess de façon dynamique .
Pourquoi utiliser un fichier .htaccess?
C'est une bonne question et peut-être que nous devrions commencer par répondre "Qu'est-ce qu'un fichier .htaccess"? C'est un fichier de configuration très spécial utilisé par le serveur web Apache. Un fichier .htaccess peut indiquer au serveur Web comment présenter diverses formes d'informations et comment gérer divers en-têtes de requêtes HTTP.
Vraiment c'est un moyen de décentralisation pour organiser les paramètres du serveur web. Un serveur physique peut contenir 50 sites Web différents, chacun avec son propre fichier .htaccess. Il accorde beaucoup de pouvoir aux webmasters, ce qui serait autrement impossible. Mais pourquoi devriez-vous en utiliser un?
La plus grande raison est la sécurité. Vous pouvez verrouiller certains répertoires ou les protéger par mot de passe . C'est parfait pour les projets privés ou les nouveaux systèmes de gestion de contenu pour lesquels vous voulez un peu plus de sécurité. Mais il existe également des tâches courantes comme la redirection des messages d'erreur 404 vers une page Web donnée. Cela ne prend qu'une seule ligne de code et peut avoir un impact considérable sur la façon dont les visiteurs réagissent aux pages manquantes.
Honnêtement, je ne peux pas dire grand-chose pour convaincre les autres qu'un fichier .htaccess vaut la peine d'être compris. Une fois que vous le voyez en action, vous pouvez reconnaître toute la valeur qui vient de ce petit fichier de configuration. Aussi, j'espère que le reste de cet article peut présenter quelques sujets perspicaces pour apporter des webmasters dans la lumière de la gestion d'une configuration de .htaccess.
Autoriser / Refuser l'accès
Il est possible de reconnaître les visiteurs potentiels de spam et de leur refuser l'accès à votre site Web. Cela peut être un peu extrême, mais si vous savez qu'une personne ou un groupe de personnes a ciblé votre site Web, il existe certaines options à choisir. Vous pouvez choisir une référence de domaine pour refuser ou interdire les visiteurs par une adresse IP.
order allow, deny deny from 255.0.0.0 refuse à partir de 123.45.6. permettre à tous
Ces exemples de codes ont été copiés à partir du Guide Htaccess car ils sont le modèle parfait pour commencer. Notez que la deuxième adresse IP manque le quatrième entier. Ce bloc de code cible la première adresse IP (255.0.0.0) et chaque adresse IP comprise entre 123.45.6.0 et 255, puis autorise tout autre trafic. Les webmasters ne peuvent pas utiliser cela aussi souvent que d'autres techniques, mais il est utile de comprendre.
Empêcher la liste de répertoires
Il y aura des moments où vous avez un répertoire ouvert qui est configuré pour permettre la navigation par défaut. Cela signifie que les utilisateurs peuvent voir tous les fichiers répertoriés dans une structure de répertoire interne, comme votre dossier images. Certains webmasters ne veulent pas autoriser la liste des répertoires et, heureusement, l'extrait de code est assez facile à retenir.
Options -Indexes
J'ai vu cette réponse présentée d'innombrables fois tout au long de Stack Overflow et c'est peut-être l'une des règles les plus faciles .htaccess à retenir.
Il est possible de créer plusieurs fichiers .htaccess à l'intérieur de chacun de ces répertoires, donc peut-être que l'un d'entre eux est protégé par un mot de passe mais les autres ne le sont pas. Et vous pouvez toujours conserver les Options -Index afin que les visiteurs ne puissent pas parcourir votre site Web / images / dossier.
Mot de passe de protection
La protection par mot de passe de vos répertoires est une procédure très courante pour sécuriser les zones d'administration et d'autres dossiers cruciaux pour votre site Web . Parfois, vous voudrez seulement offrir l'accès à un petit groupe de personnes. D'autres fois, les mots de passe empêchent les pirates d'accéder au panneau d'administration de votre site Web. Mais de toute façon c'est une solution très puissante à un certain nombre de problèmes.
Il existe un guide pratique sur la protection par mot de passe qui décrit les extraits de code importants. Vous devrez générer un fichier de mot de passe qui stocke les informations d'identification de nom d'utilisateur / mot de passe . C'est ainsi qu'Apache peut vérifier ce que l'utilisateur entre pour voir s'il doit avoir un accès. Et notez comment vous devrez générer un échantillon pour votre nom d'utilisateur et votre mot de passe.
Je recommanderais d'utiliser ce générateur htpassword afin de gagner un peu de temps. La syntaxe sera toujours parfaite et vous n'avez pas besoin de crypter le mot de passe vous-même . Et l'autre bonne option est de protéger par mot de passe une liste complète de répertoires. Nous pouvons voir cet exemple dans la galerie de snippets de code CSS-Tricks.
AuthType Basic AuthName "Cette zone est protégée par un mot de passe" AuthUserFile /full/path/to/.htpasswd Exiger un utilisateur valide
Sécurité pour WordPress
Pour mettre à profit cette idée de protection par mot de passe, montrons un exemple concret. Cet extrait de code plus complexe forcera l'authentification de l'utilisateur pour toute personne accédant au fichier WordPress wp-login.php . Vous trouverez la source d'origine sur Ask Apache qui a de nombreux autres extraits de protection WordPress.
Commande Refuser, Autoriser Refuser de Tout Satisfaire Tout AuthName "Protégé par AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic Exiger un utilisateur valide
Et si vous voulez suivre ces règles .htaccess, cela peut aussi aider à protéger la zone d'administration par mot de passe. Typiquement, le fichier wp-login.php va obtenir le plus de hits de la part des personnes essayant de forcer la force dans votre système. Donc même les exemples de codes ci-dessus seraient plus que suffisant pour votre site WordPress.
Règles de réécriture d'URL HTTP
La réécriture d'URL est probablement l'une des utilisations les plus courantes des fichiers .htaccess. Les installations par défaut de WordPress peuvent en fait générer un fichier .htaccess directement à partir du panneau d'administration . Cela vous permet de créer de jolies URL qui n'ont pas la structure .php? P = 1.
Je veux regarder cet exemple de réécriture sur la façon de mettre à jour les traits de soulignement aux tirets, car il contient beaucoup d'éléments les plus importants .
Options + FollowSymLinks RewriteEngine Sur RewriteBase / RewriteRule! \. (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Oui] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Oui] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Oui] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Oui] RewriteCond% {ENV: uscor} ^ Oui $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
RewriteEngine et RewriteBase peuvent toujours être réglés sur ces valeurs exactes. Mais vous devez activer le RewriteEngine pour que tout fonctionne. Il y a beaucoup de guides en ligne expliquant comment activer mod_rewrite et votre hébergeur peut également vous aider.
Notez que la syntaxe suit un modèle de RewriteRules en haut. Ces règles sont utilisées pour faire correspondre les cas qui sont envoyés en tant que requête HTTP . Ceux-ci sont répondus par une RewriteRule qui dans ce cas redirige tout vers le domaine d.com . Les parenthèses de fin comme [R = 301, L] sont appelées drapeaux de réécriture qui sont importants, mais plus d'un sujet avancé.
La syntaxe de mod_rewrite est définitivement un peu déroutante mais ne vous laissez pas intimider! Les extraits peuvent être beaucoup plus faciles dans d'autres exemples.
Pour commencer, je recommande cette webapp mod_rewrite qui vous aide à générer des exemples de code en utilisant de vraies URL. C'est un outil génial, car vous pouvez rechercher différents éléments dans la syntaxe pour voir ce qu'ils font réellement dans les règles de réécriture. Voici un autre excellent tutoriel avec un exemple plus simple à étudier:
RewriteRule ^ dir / ([0-9] +) /? $ /index.php?id=$1 [L]
N'essayez pas de vous surcharger en même temps. Il m'a fallu bien plus de 3-4 mois pour vraiment commencer à comprendre comment réécrire les URL avec [0-9a-zA-Z] + et des motifs similaires. Continuez à pratiquer et avec le temps je vous promets que vous obtiendrez ce genre de choses comme si c'était du bon sens.
Extraits de code pour les webmasters
J'aime les extraits faciles à utiliser et je veux mettre en place cette petite collection de codes pertinents. Htaccess pour les webmasters. Chacune de ces idées peut parfaitement s'intégrer dans votre propre fichier .htaccess avec d'autres blocs de code. La plupart de ces extraits sont parfaits pour résoudre des problèmes ou des correctifs rapides dans votre environnement de serveur Web . Imaginez la configuration parfaite d'Apache pour les nouveaux webmasters qui commencent juste en ligne.
Définition de DirectoryIndex
La commande pour DirectoryIndex est généralement utilisée sur une seule ligne. Vous pouvez indiquer à Apache quels documents doivent initialement être traités comme le document "principal". Par défaut, cela ciblera des éléments tels que index.html, index.php, index.asp et d'autres fichiers d'index . Mais en utilisant cet extrait de code que j'ai copié ci-dessous, vous avez la possibilité de faire de ce document racine tout ce que vous voulez.
DirectoryIndex index.html index.cgi index.php
L'ordre des documents devrait commencer par le plus important et se déplacer dans les rangs les moins importants. Donc, si nous n'avons pas de fichier HTML ou CGI, le repli ira à index.php . Et vous pourriez même nommer ces fichiers home.php ou someotherfile.php et c'est toute syntaxe valide.
Force WWW ou Sous-domaine non WWW
Google peut fonctionner avec les deux versions du domaine de votre site Web si vous ne spécifiez pas www.domain.com ou juste domain.com . Dans mon expérience, il est préférable d'en choisir un et de le définir comme le seul choix via .htaccess. Ensuite, Google n'indexera pas les différentes URL avec certaines pointant vers le sous-domaine WWW alors que d'autres ne le font pas.
# Forcer le sous-domaine WWW RewriteEngine sur RewriteCond% {HTTP_HOST} ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Aucun sous-domaine RewriteEngine sur RewriteCond% {HTTP_HOST}! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Cet extrait de code provient d'une archive CSS-Tricks et fournit une solution très pratique. Vous devriez mettre à jour le domaine pour qu'il soit ce dont vous avez besoin pour votre propre site Web. Sinon, il y aura des problèmes et vous remarquerez tout de suite! Mais je suis fortement en faveur de forcer l'une de ces deux options et c'est en haut de ma liste de tâches après le lancement d'un nouveau site web.
Téléchargements de fichiers Force Media
Un autre extrait assez important permet de télécharger certains types de support au lieu d'être affiché dans le navigateur . Immédiatement je peux penser à des documents PDF et des fichiers audio MP3 qui peuvent être présentés dans un format téléchargeable, mais comment vous assurez-vous qu'ils sont téléchargeables ? J'ai trouvé un article similaire publié sur Htaccess Guide qui décrit cet extrait de code.
Application AddType / octet-stream .zip .mp3 .mp4
N'hésitez pas à inclure encore plus de types de fichiers à la fin de cette ligne. Tous les formats de média utilisant le type MIME octet-stream seront téléchargeables. Forcer cela via .htaccess est une voie très directe pour s'assurer que les gens ne peuvent pas voir ces fichiers dans le navigateur.
Documents d'erreur personnalisés
Un dernier morceau final que je veux ajouter est un modèle complet de documents d'erreur personnalisés. Habituellement, ces codes numériques ne sont visibles qu'à la fin du serveur. Mais il y a beaucoup de ces documents d'erreur que vous devriez connaître. Quelques exemples pourraient être des erreurs 403/404 et la redirection 301 .
Ce modèle de code d'erreur commence à 100 et se déplace vers le haut en 500 erreurs . Veuillez noter que vous n'avez évidemment pas besoin de tout cela. Seules les erreurs les plus communes seraient nécessaires, et éventuellement quelques fragments obscurs si vous en ressentez le besoin.
Si vous ne reconnaissez pas un code, recherchez-le sur Wikipedia pour mieux comprendre.
ErrorDocument 100 / 100_CONTINUE ErrorDocument 101 / 101_SWITCHING_PROTOCOLS ErrorDocument 102 / 102_PROCESSING ErrorDocument 200 / 200_OK ErrorDocument 201 / 201_CREATED ErrorDocument 202 / 202_ACCEPTED ErrorDocument 203 / 203_NON_AUTHORITATIVE ErrorDocument 204 / 204_NO_CONTENT ErrorDocument 205 / 205_RESET_CONTENT ErrorDocument 206 / 206_PARTIAL_CONTENT ErrorDocument 207 / 207_MULTI_STATUS ErrorDocument 300 / 300_MULTIPLE_CHOICES ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument 302 / 302_MOVED_TEMPORARILY ErrorDocument 303 / 303_SEE_OTHER ErrorDocument 304 / 304_NOT_MODIFIED ErrorDocument 305 / 305_USE_PROXY ErrorDocument 307 / 307_TEMPORARY_REDIRECT ErrorDocument 400 / 400_BAD_REQUEST ErrorDocument 401 / 401_UNAUTHORIZED ErrorDocument 402 / 402_PAYMENT_REQUIRED ErrorDocument 403 / 403_FORBIDDEN ErrorDocument 404 / 404_NOT_FOUND ErrorDocument 405 / 405_METHOD_NOT_ALLOWED ErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICT ErrorDocument 410 / 410_GONE ErrorDocument 411 / 411_LENGTH_REQUIRED ErrorDocument 412 / 412_PRECONDITION_FAILED ErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument 417 / 417_EXPECTATION_FAILED ErrorDocument 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument 423 / 423_LOCKED ErrorDocument 424 / 424_FAILED_DEPENDENCY ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument 501 / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503 / 503_SERVICE_UNAVAILABLE ErrorDocument 504 / 504_GATEWAY_TIME_OUT ErrorDocument 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument 506 / 506_VARIANT_ALSO_VARIES ErrorDocument 507 / 507_INSUFFICIENT_STORAGE ErrorDocument 510 / 510_NOT_EXTENDED
Webapps en ligne .htaccess
- Htaccess Builder
- Générateur de redirection .htaccess
- .htaccessEditor - Créer un fichier .htaccess
- Mod Rewrite Generator de GenerateIt.net
- DevGizmo htaccess Builder
Autres ressources utiles
- .htaccess dans Httpd Wiki
- Documentation officielle d'Apache htaccess
- Ask Apache Blog - Archives Htaccess
- Ultimate Guide pour htaccess et mod_rewrite
- Tout ce que vous avez toujours voulu savoir sur les règles de Mod_Rewrite, mais que vous aviez peur de demander
Dernières pensées
Il y a tellement de ressources innombrables en ligne pour discuter des fichiers .htaccess. Mes articles liés et webapps sont un bon endroit pour commencer. Mais continuez à pratiquer de nouvelles idées et n'ayez pas peur de tester des extraits de code . Tant que vous avez un fichier de sauvegarde, vous pouvez tester tout ce que vous aimez et c'est une expérience d'apprentissage amusante.
Si vous avez d'autres idées ou suggestions à propos de la gestion de .htaccess, veuillez nous en faire part dans la zone de discussion ci-dessous.
20 tutoriels de motifs pour vos futurs modèles
Différents projets graphiques et de conception web requièrent des éléments de design différents et les motifs ne sont que l'un d'entre eux. Ils peuvent être utilisés comme arrière-plan ou au premier plan dans diverses situations, selon vos besoins. Vous pouvez même utiliser un motif que vous avez vous-même créé pour ajouter une touche personnelle à votre travail.Aujourd'
Guide du concepteur des bases de la conception de l'accessibilité du Web
Le Web devrait être un endroit où tout le monde peut accéder au même contenu de partout dans le monde. Les techniques réactives ont parcouru un long chemin vers des conceptions agnostiques . Mais qu'en est -il des conceptions agnostiques d'accessibilité ?L'accessibilité du Web existe depuis des années, mais sa mise en œuvre nécessite de nouvelles avancées en matière de technologie et de développement Web. Beaucoup de