Startpagina » Coding » Een beginnershandleiding voor .htaccess voor ontwerpers en ontwikkelaars

    Een beginnershandleiding voor .htaccess voor ontwerpers en ontwikkelaars

    Onder de vele verschillende hulpmiddelen voor het aanpassen van uw webserver, is het .htaccess-configuratiebestand een enorme troef. Jij kan snel documenttypes opnieuw instellen, engines ontleden, URL-omleidingen, en veel andere cruciale functies. Webmasters die niet erg technisch zijn, komen mogelijk niet in op de details van het beheren van uw eigen .htaccess-bestand. Maar het onderwerp zelf is fascinerend en een onderzoek waard.

    Voor dit artikel wil ik een aantal van de meer doelgerichte concepten presenteren voor webmasters en webontwikkelaars. Iedereen die is lanceren van een eigen website op een Apache-server zal zeker willen weten hoe ze hun .htaccess-bestand moeten beheren. Het biedt zoveel aanpasbaarheid en het kan werken in alle webtalen van PHP tot Ruby.

    Onderaan dit bericht heb ik een aantal externe webapps toegevoegd help nieuwkomers hun .htaccess-bestanden dynamisch te genereren.

    Waarom een ​​.htaccess-bestand gebruiken?

    Dit is een geweldige vraag en misschien moeten we beginnen met antwoorden “wat is een .htaccess-bestand”? Het is een heel speciaal configuratiebestand dat door de Apache-webserver wordt gebruikt. Een .htaccess-bestand kan de webserver hiervan op de hoogte brengen hoe verschillende vormen van informatie te presenteren en hoe om te gaan met verschillende HTTP-verzoekheaders.

    Het is echt een middel om decentralisatie om de instellingen van de webserver te organiseren. Eén fysieke server kan 50 verschillende websites bevatten met elk een eigen .htaccess-bestand. Het verleent veel macht aan webmasters, wat anders onmogelijk zou zijn. Maar waarom zou u er een gebruiken??

    De grootste reden is veiligheid. Jij kan blokkeer bepaalde mappen of maak ze met een wachtwoord beveiligd. Dit is geweldig voor privéprojecten of nieuwe Content Management Systemen waar u een beetje extra beveiliging wilt. Maar er zijn ook veelvoorkomende taken, zoals het omleiden van 404 foutmeldingen naar een bepaalde webpagina. Dit kost maar één regel code en het kan een dramatische invloed hebben op hoe bezoekers reageren op ontbrekende pagina's.

    Eerlijk gezegd is er niet veel dat ik kan zeggen om anderen ervan te overtuigen dat een .htaccess-bestand de moeite waard is om te begrijpen. Zodra je het in actie ziet, kun je alle waarde herkennen die uit dit kleine configuratiebestand komt. Ook hoop ik dat de rest van dit artikel enkele inzichtelijke onderwerpen kan presenteren om webmasters in het licht te plaatsen van het beheren van een .htaccess-configuratie.

    Toegang toestaan ​​/ weigeren

    Het is mogelijk om potentiële spambezoekers te herkennen en hen toegang tot uw website te ontzeggen. Dit kan een beetje extreem zijn, maar als u weet dat een persoon of een groep mensen uw website heeft getarget, zijn er enkele opties waaruit u kunt kiezen. U kunt een domeinverwijzing kiezen om bezoekers door een IP-adres te weigeren of te verbieden.

    order toestaan, ontkennen weigeren van 255.0.0.0 weigeren van 123.45.6. toestaan ​​van iedereen 

    Deze voorbeeldcodes zijn gekopieerd van de Htaccess-gids omdat ze de perfecte sjabloon zijn om te beginnen. Merk op dat het 2e IP-adres het vierde gehele getal mist. Dit codeblok target het eerste IP (255.0.0.0) en elk IP binnen het bereik van 123.45.6.0-255, laat dan al het andere verkeer toe. Webmasters mogen dit niet zo vaak gebruiken als andere technieken, maar het is nuttig om dit te begrijpen.

    Vermijd directoryvermelding

    Er zullen momenten zijn dat je een open map hebt die dat is ingesteld om standaard browsen toe te staan. Dit betekent dat gebruikers alle bestanden in een interne directorystructuur kunnen bekijken, zoals uw afbeeldingenmap. Sommige webmasters willen geen directoryvermelding toestaan ​​en gelukkig is het codefragment vrij gemakkelijk te onthouden.

    Opties -Indexen 

    Ik heb dit antwoord ontelbare keren in Stack Overflow gezien en het kan een van de gemakkelijkste .htaccess-regels zijn om te onthouden.

    Het is mogelijk om het echt te doen maak meerdere .htaccess-bestanden aan in elk van deze mappen dus misschien is een van deze met een wachtwoord beveiligd, maar de andere niet. En je kunt nog steeds de Opties -Indexen zodat bezoekers niet door uw website / afbeeldingen / map kunnen bladeren.

    Wachtwoord beveiliging

    Het beveiligen van uw mappen met een wachtwoord is hiervoor een zeer gebruikelijke procedure het beveiligen van administratiegebieden en andere mappen die cruciaal zijn voor uw website. Soms wil je alleen toegang bieden aan een kleine groep mensen. Andere tijden zijn wachtwoorden om te voorkomen dat hackers toegang krijgen tot uw websitebeheerspaneel. Maar hoe dan ook, het is een zeer krachtige oplossing voor een hele reeks problemen.

    Er is een handige handleiding over wachtwoordbeveiliging die de belangrijke codefragmenten beschrijft. Je zal moeten een wachtwoordbestand genereren waarin de gebruikersnaam / wachtwoord-inloggegevens worden opgeslagen. Dit is hoe Apache kan controleren wat de gebruiker invoert om te zien of ze toegang moeten krijgen. En merk op hoe u een voorbeeld voor uw gebruikersnaam en wachtwoord moet genereren.

    Ik zou aanraden om deze htpassword-generator te gebruiken, zodat je wat tijd kunt besparen. De syntaxis komt altijd perfect uit en je hoeft het wachtwoord niet zelf te versleutelen. En de andere geweldige optie is om een ​​volledige directorylijst met een wachtwoord te beveiligen. We kunnen dit voorbeeld zien in de CSS-Tricks galerij met codefragmenten.

    AuthType Basic AuthName "Dit gebied is beveiligd met een wachtwoord" AuthUserFile /full/path/to/.htpasswd Vereist geldige gebruiker 
    Beveiliging voor WordPress

    Om dit wachtwoordbeschermingsidee goed te gebruiken, laten we een voorbeeld uit de praktijk weergeven. Dit gecompliceerdere codefragment zal gebruikersverificatie afdwingen voor iedereen die toegang heeft tot het WordPress wp-login.php-bestand. U zult de originele bron vinden op Ask Apache, die tal van andere WordPress-beschermingsfragmenten heeft.

     Order Deny, Allow Deny from All Voldoet aan elke AuthName "Beschermd door AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic Vereist geldige gebruiker  

    En als u deze .htaccess-regels gaat volgen, kan het ook helpen om het admin-gebied met een wachtwoord te beveiligen. Typisch de wp-login.php bestand krijgt de meeste hits van mensen die proberen je systeem bruut te forceren. Dus zelfs alleen de bovenstaande voorbeeldcodes zouden zijn meer dan voldoende toegevoegde beveiliging voor uw WordPress-website.

    HTTP-URL herschrijfregels

    Het herschrijven van URL's is waarschijnlijk een van de meest gebruikte toepassingen voor .htaccess-bestanden. WordPress standaardinstallaties kunnen eigenlijk genereer een .htaccess-bestand rechtstreeks vanuit het administratiepaneel. Hiermee kunt u mooie URL's maken die de structuur .php? P = 1 niet hebben.

    Ik wil dit herschrijfvoorbeeld bekijken hoe underscores aan streepjes moet worden bijgewerkt sinds het bevat veel van de belangrijkste elementen.

    Opties + FollowSymLinks RewriteEngine On RewriteBase / RewriteRule! \. (Html ​​| php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Ja] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Ja] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Ja] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Ja] RewriteCond% ENV: uscor ^ Yes $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L] 

    RewriteEngine en RewriteBase kan het meest altijd worden ingesteld op deze exacte waarden. Maar u moet de RewriteEngine ingeschakeld hebben om iets anders te laten werken. Er zijn veel online gidsen die uitleg geven over het inschakelen van mod_rewrite en uw hostingprovider kan ook helpen.

    Let op de syntaxis volgt een patroon van RewriteRules op de top. Deze regels zijn gewend om overeenkomen met cases die worden verzonden als een HTTP-verzoek. Deze worden beantwoord door een RewriteRule die in dit geval alles naar het domein omleidt d.com. De eindhaakjes zoals [R = 301, L] worden herschrijfvlaggen genoemd die belangrijk zijn, maar eerder een geavanceerd onderwerp zijn.

    De syntaxis van mod_rewrite is absoluut een beetje verwarrend, maar wees niet geïntimideerd! De fragmenten kunnen er in andere voorbeelden een stuk eenvoudiger uitzien.

    Als ik net aan de slag ga, moet ik deze mod_rewrite-webapp aanbevelen die u helpt bij het genereren van codevoorbeelden met echte URL's. Dit is een briljante tool omdat je verschillende items in de syntaxis kunt opzoeken om te zien wat ze feitelijk doen in de Rewrite-regels. Hier is nog een geweldige tutorial met een eenvoudiger voorbeeld om te studeren:

    RewriteRule ^ dir / ([0-9] +) /? $ /Index.php? Id =$1 [L] 

    Probeer jezelf niet allemaal tegelijk overbelast te raken. Het kostte me ruim 3-4 maanden om echt te beginnen met het begrijpen hoe URL's kunnen worden herschreven met [0-9a-zA-Z] + en vergelijkbare patronen. Blijf oefenen en na verloop van tijd beloof ik dat je dit soort dingen zult krijgen zoals het is gezond verstand.

    Codefragmenten voor webmasters

    Ik ben dol op eenvoudig te gebruiken fragmenten en ik wil deze kleine verzameling toepasselijke .htaccess-codes voor webmasters samenstellen. Elk van deze ideeën kan netjes in uw eigen .htaccess-bestand passen, samen met andere codeblokken. De meeste van deze fragmenten zijn geweldig voor het oplossen van snelle problemen of oplossingen in uw webserveromgeving. Stel je de perfecte Apache-setup voor voor gloednieuwe webmasters die net online zijn begonnen.

    DirectoryIndex instellen

    De opdracht voor DirectoryIndex wordt meestal op één regel gebruikt. U kunt Apache vertellen welke documenten in eerste instantie moeten worden behandeld als de “hoofd” document. Standaard zal dit doelitems zoals index.html, index.php, index.asp en andere indexbestanden. Maar met behulp van dit codefragment dat ik hieronder heb gekopieerd, heb je de mogelijkheid om dit rootdocument te maken wat je maar wilt.

    DirectoryIndex index.html index.cgi index.php 

    De volgorde van documenten moet beginnen met de belangrijkste en doorlopen van de ranglijst naar de minst belangrijke. Dus als we geen HTML- of CGI-bestand hebben, gaat de fallback naar index.php. En je zou deze bestanden zelfs een naam kunnen geven home.php of someotherfile.php en het is allemaal geldige syntaxis.

    Forceer WWW of niet-WWW-subdomein

    Google kan met beide versies van uw websitedomein werken als u niet opgeeft www.domain.com of gewoon domain.com. In mijn ervaring is het de beste manier om dit te doen kies een van deze en stel deze in als enige keuze via .htaccess. Vervolgens indexeert Google verschillende URL's niet, sommige verwijzen naar het subdomein WWW, andere niet.

    # Forceer WWW-subdomein RewriteEngine On RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Geen subdomein RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301] 

    Dit codefragment komt uit een CSS-Tricks-archief en biedt een zeer handige oplossing. Je moet het domein updaten om te zijn wat je nodig hebt voor je eigen website. Anders zullen er problemen zijn en zul je meteen merken! Maar ik ondersteun sterk het forceren van een van deze twee opties en het staat bovenaan de lijst van mijn taken na het lanceren van een nieuwe website.

    Force Media File Downloads

    Een ander redelijk belangrijk fragment maakt het mogelijk bepaalde mediatypen te dwingen downloaden in plaats van worden weergegeven in de browser. Ik kan meteen denken aan PDF-documenten en MP3-audiobestanden die in een downloadbaar formaat kunnen worden gepresenteerd, maar hoe gaat het zorg ervoor dat ze kunnen worden gedownload? Ik vond een vergelijkbaar artikel gepubliceerd op Htaccess Guide dat dit codefragment beschrijft.

    AddType-toepassing / octet-stream .zip .mp3 .mp4 

    Voel je vrij om nog meer bestandstypes aan het einde van deze regel toe te voegen. Alle media-indelingen met het octet-stream MIME-type kunnen worden gedownload. Dit via .htaccess forceren is een zeer directe manier om te zorgen dat mensen deze bestanden niet in de browser kunnen bekijken.

    Aangepaste foutdocumenten

    Een laatste laatste stuk dat ik wil toevoegen is een volledige sjabloon van aangepaste foutdocumenten. Meestal zijn deze cijfercodes alleen te zien aan de serverzijde. Maar er zijn veel van deze foutdocumenten die u bekend zou moeten zijn. Een paar voorbeelden kunnen zijn 403/404 fouten en de 301 omleiding.

    Deze foutcodesjabloon begint bij 100 en gaat omhoog in 500 fouten. Houd er rekening mee dat u dit allemaal duidelijk niet nodig hebt. Alleen de meest voorkomende fouten zijn nodig en mogelijk enkele obscure fragmenten als u de behoefte voelt.

    Als je een code niet herkent, zoek het dan op Wikipedia om een ​​beter begrip te krijgen.

    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 
    Online .htaccess Webapps
    • Htaccess Builder
    • .htaccess omleidingsgenerator
    • .htaccessEditor - Maak een .htaccess-bestand
    • Mod Rewrite Generator van GenerateIt.net
    Andere nuttige bronnen
    • .htaccess in Httpd Wiki
    • Officiële Apache htaccess-documentatie
    • Ask Apache Blog - Archieven van Htaccess
    • Ultieme gids voor htaccess en mod_rewrite
    • Alles wat u ooit wilde weten over Mod_Rewrite-regels, maar niet durfde vragen

    Laatste gedachten

    Er zijn zoveel ontelbare bronnen online die .htaccess-bestanden bespreken. Mijn gekoppelde artikelen en webapps zijn een geweldige plek om te beginnen. Maar blijf nieuwe ideeën oefenen en wees niet bang voor codefragmenten uittesten. Zolang je hebt een back-upbestand dan kun je alles testen wat je leuk vindt en het is een leuke leerervaring.

    Als u andere ideeën of suggesties heeft over .htaccess-beheer, kunt u dit met ons delen op het onderstaande discussiegebied.