Vandaag zullen we enkele praktische toepassingen van htaccess-bestanden bespreken die u in uw webtoepassingen kunt gebruiken.
Htaccess-bestanden zijn platte-tekstconfiguratiebestanden die worden gebruikt door de Apache HTTP-webserver. Hiermee kunnen gebruikers opties op mapniveau instellen zonder toegang tot de httpd.conf het dossier. Als zodanig is het vereist dat uw server Apache gebruikt en een webhost die dit toestaat htaccess bestanden (de meest populaire hosts doen).
Ik ga uit van een basiskennis van htaccess, maar als je je wilt opfrissen bekijk dan dit artikel van Joseph Pecoraro
Hotlinking of inline linking is wanneer een website rechtstreeks linkt naar een object op een andere site. Dit kost de bandbreedte van de hostingwebsite om de afbeelding op de pagina van de tweede site te leveren. Op populaire fotosites kan dit een groot probleem zijn, zij het soms humoristisch.
Er zijn manieren om dit groeiende probleem met behulp van htaccess op te lossen. Eerst hier is het beeld dat we proberen te beschermen.
RewriteEngine op RewriteCond% HTTP_REFERER! ^ $ #Domains die kunnen linken naar afbeeldingen #add zoveel als je wilt RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Demo.collegeaintcheap.com [NC] # RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Noahhendrix.com [NC] # vertonen geen afbeelding bij hotlinked RewriteRule \. (Jpg | png | gif) $ - [ NC, F, L]
We zullen dit regel voor regel doorlopen.
Dit is vrij eenvoudig, maar misschien willen we de gebruiker laten weten dat we niet willen dat deze onze afbeeldingen hotlinken, dus laten we alle hotlinked-verzoeken omleiden naar een afbeelding in plaats van een 403-verboden fout te verzenden. Dit wordt gedaan door de laatste regel te vervangen door deze code.
#show een alternatieve afbeelding RewriteRule \. (jpg | png | gif) $ http://demo.collegeaintcheap.com/envato/htaccess/hotlink/images/hotlink.jpeg [NC, R, L]
U kunt de URL naar elk gewenst afbeeldingspad in uw domein wijzigen, maar onthoud dat dit niet moet eindigen in jpg, png of gif omdat het de regel opnieuw toepast en de server in een oneindige lus verzendt. Ik heb ervoor gekozen om de oudere .jpeg-extensie te gebruiken om dit op te lossen. De R vlag die is vervangen F verzendt eenvoudig een omleiding.
Dit is een goede kleine tip als je een spammer op je website hebt staan. Als u hun IP in uw logboeken kunt vinden, voegt u het gewoon toe aan een htaccess-bestand.
Order Deny, Allow Deny from 24.121.202.23 # Weigeren van 0.0.0.0
Met behulp van de richtlijn Order in de module mod_access kunnen we IP-adressen opgeven die moeten worden geweigerd en toegestaan. Gewoon de syntaxis gebruiken Weigeren van IP-adres we kunnen deze gebruikers verbieden toegang te krijgen tot onze directory.
Alle productiegereedbare sites moeten aangepaste foutpagina's gebruiken voor een professioneel tintje. Dit is eenvoudig met behulp van de ErrorDocument-richtlijn in de kern van Apache. Een aangepaste pagina is veel beter dan de standaard Apache-foutpagina's.
ErrorDocument 404 http://demo.collegeaintcheap.com/envato/htaccess/errors/404.html ErrorDocument 403 http://demo.collegeaintcheap.com/envato/htaccess/errors/403.html ErrorDocument 500 http: // demo. collegeaintcheap.com/envato/htaccess/errors/500.html
ErrorDocument neemt twee argumenten foutcode en document. In de bovenstaande code heb ik foutdocumenten gemaakt voor de 3 meest voorkomende HTTP-fouten: 404 niet gevonden, 403 verboden en 500 serverfouten. Vervolgens kunt u de volledige URL of het relatieve pad naar uw foutdocumenten opgeven. Je zou ze ook kunnen omleiden naar een PHP-script dat de fouten in een database registreert of deze naar je e-mailt (kan echter vervelend worden). Dit is een geweldige manier om fouten in je webtoepassing onder controle te krijgen, zorg ervoor dat je de 404 error page showcase van Smashing Magazine bekijkt voor inspiratie.
Als u een belangrijke site-upgrade uitvoert, moet u waarschijnlijk gebruikers omleiden naar een pagina waarop ze worden geïnformeerd. Dit voorkomt dat gebruikers gebroken pagina's of potentiële gaten in de beveiliging zien terwijl de applicatie aan het uploaden is. Een waarschuwing is dat we bepaalde IP-adressen op de site willen laten testen voordat deze live gaan. Dit alles kan worden bereikt in een htaccess-bestand.
RewriteEngine op RewriteCond% REQUEST_URI! /Upgrade.html$ RewriteCond% REMOTE_HOST! ^ 24 \ .121 \ .202 \ .30 RewriteRule $ http://demo.collegeaintcheap.com/envato/htaccess/upgrade/upgrade. html [R = 302, L]
We gebruiken de herschrijfengine opnieuw om dit te doen, maar op een soort omgekeerde manier. Eerst moeten we een voorwaarde instellen die het document uitsluit dat de upgrade beschrijft, anders start onze server een oneindige lus. Vervolgens sluiten we uit dat een enkel IP-adres wordt omgeleid voor testdoeleinden. Ten slotte gebruiken we de herschrijfregel om gebruikers naar een upgradepagina te sturen. De vlaggen waar we eerder naar hebben gekeken, behalve deze keer dat we de omleiding instellen op een 302 statuscode, de browser vertellen dat de pagina tijdelijk is verplaatst en dienovereenkomstig omgaan met caching. Smashing Magazine heeft opnieuw een geweldige showcase van effectieve onderhoudspagina's.
Om verschillende veiligheidsredenen is het een goed idee om de directorylijst, het standaardgedrag in Apache, te beperken. Dit kan gedaan worden met een eenvoudige regel in ons htaccess-bestand, die we kunnen voorkomen dat bezoekers onze directory-vermeldingen te zien krijgen.
Opties -Indexen
Nu gebruikers die een map aanvragen die geen indexbestand heeft zal het een 403 verboden foutpagina tonen.
Dit zijn enkele van mijn favoriete toepassingen van htaccess. Laat de jouwe in de comments! Ik ben beschikbaar voor hulp bij de opmerkingen of op twitter. Als er veel interesse is, zal ik meer htaccess tutorials doen met oplossingen voor uw verzoeken in de comments. Bedankt voor het lezen!