Το αρχείο .htaccess μπορεί να αποδειχθεί ένας πολύτιμος σύμμαχος για τον έλεγχο της πρόσβασης στους πόρους του server σας ή αν θέλετε του χώρου που έχετε νοικιάσει σε ένα server, αφού σας επιτρέπει να ασφαλίσετε τον server σας με λίγες μόνο γραμμές κώδικα παρακάμπτοντας τις όποιες εφαρμογές διαχείρισης ασφάλειας έχετε, οι οποίες συνήθως έχουν πολύ δουλεία να κάνουν και είναι κατά βάση υπερφορτωμένες.
Ας δούμε πως
Αν χρειάζεστε πληροφορίες σχετικά με το τι είναι ένα αρχείο .htaccess, μπορείτε να διαβάσετε σχετικά άρθρα στο Wikipedia τα οποία είναι αρκετά επεξηγηματικά.
Ας δούμε μερικά χρήσιμα κόλπα του .htaccess που σίγουρα κάποιο από όλα θα σας ενδιαφέρει….
Ανακατεύθυνση των χρηστών σε προσαρμοσμένες σελίδες σφαλμάτων
Αντί οι χρήστες να βλέπουν τις προεπιλεγμένες σελίδες σφαλμάτων των προγραμμάτων Apache, Lightspeed ή Nginx, οι webmasters έχουν τη δυνατότητα να ανακατευθύνουν τα αιτήματα αυτά σε ένα δικό τους προσαρμοσμένο κείμενο.
Αυτό μπορεί να είναι ένα αρχείο κειμένου, μια σελίδα HTML, ένα script Perl, ή ότι άλλο θέλετε, για όσο διάστημα ο διακομιστής είναι σε θέση να αναγνώσει το κείμενο σας και να το στείλει στον χρήστη (στα παρακάτω παράδειγμα τους ανακατευθύνουμε σε δικές μας html σελίδες).
ErrorDocument 401 /error_pages/401.html ErrorDocument 403 /error_pages/403.html ErrorDocument 404 /error_pages/404.html ErrorDocument 500 /error_pages/500.htmlΒεβαιωθείτε ότι οι σελίδες με www και χωρίς www δείχνουν το ίδιο πράγμα
Το “www” δεν είναι υποχρεωτικό πλέον σε διευθύνσεις URL, αλλά υπάρχουν περιπτώσεις όπου η WWW και η χωρίς-WWW εκδόσεις ενός ιστότοπου μπορεί να οδηγήσουν σε διαφορετικές θέσεις. Αυτό μπορεί να οφείλεται σε μια κακή ρύθμιση του διακομιστή, σε λάθος ρυθμίσεις του DNS, ή σε προβληματικούς λογαριασμούς φιλοξενίας. Για να αποφευχθεί αυτή η κατάσταση, αποθηκεύστε το παρακάτω κείμενο στο αρχείο .htaccess και θα λύσει το πρόβλημα## ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΤΟΥ ΧΩΡΙΣ-WWW σε WWW RewriteEngine On RewriteCond %{HTTP_HOST} ^iguru\.gr RewriteRule (.*) http://iguru.gr/$1 [R=301,L]Για το σκοπό αυτό, θα πρέπει πρώτα το mod_rewrite να είναι ενεργοποιημένο στον server σας και, επίσης, πρέπει να βεβαιωθείτε ότι η γραμμή “RewriteEngine On” είναι παρούσα κάπου μέσα στο .htaccess αρχείο σας. Εμείς το έχουμε ενσωματώσει ήδη στο κώδικα για την περίπτωση που δεν το έχετε ήδη ενεργοποιήσει.
Η αντίστροφη διαδικασία είναι η εξής (δηλαδή η ανακατεύθυνση της :
## ΑΝΑΚΑΤΕΥΘΥΝΣΗ ΤΟΥ WWW σε ΧΩΡΙΣ-WWW RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.iguru\.grRewriteRule (.*) http://iguru.gr/$1 [R=301,L]Σημείωση: φροντίστε να αλλάξετε το όνομα του ισοτόπου μας με το δικό σας διαφορετικά θα δείτε τα κλικς προς το site σας να μειώνονται δραματικά !!!!!!!! :)
Στείλτε τους χρήστες σε ένα subdomain σας
Μερικές φορές μπορεί να θέλετε να στείλετε τους χρήστες σας σε ένα προσαρμοσμένο subdomain σας. Αυτό μπορεί να γίνει εύκολα και γρήγορα χρησιμοποιώντας το .htaccess.RewriteEngine On RewriteCond %{HTTP_HOST} !^$ RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$ [NC] RewriteRule ^/(.*)$ http://subdomain.domain.com/$1 [L,R=301]HTTP σε HTTPS ανακατευθύνσεις
Δεν είναι τόσο απλό. O αναπροσανατολισμός των χρηστών με την έκδοση HTTPS του site σας δεν το κάνει αυτόματα “ασφαλές”. Θα πρέπει να εξετάσουμε την εφαρμογή SSL για αυτό.RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}Αρχεία πολυμέσων δύναμη για να κατεβάσετε στον browser του χρήστη
Ορισμένα προγράμματα περιήγησης (ή αν θέλετε τώρα πια σχεδόν όλα) έχουν την τάση να αναγκάζουν τα αρχεία να ανοίγουν με κάποια εσωτερική εφαρμογή τους, αντί να επιτρέπουν στους χρήστες απλά να τα κατεβάσουν. Για να βεβαιωθείτε ότι το αρχείο είναι αποθηκευμένο σε τοπικό επίπεδο κάθε φορά (δηλαδή στον υπολογιστή του χρήστη), και δε είναι σε συνεχή ροή προς τον χρήστη, γεγονός που “τρώει” bandwidth, αυτό το τέχνασμα μπορεί να βοηθήσει:AddType application/octet-stream .pdf AddType application/octet-stream .avi AddType application/octet-stream .mp3Μπορείτε να δηλώσετε οποιοδήποτε τύπο επέκτασης αρχείου που σας αρέσει. Ο διακομιστής θα αναγκάσει το πρόγραμμα περιήγησης να το κατεβάσει στον χρήστη.
Προστατεύστε τα αρχεία σας από το hotlinking
Ναι, είναι τόσο απλό να προστατεύσετε τα αρχεία σας από το hotlinked στο Web. Πιθανά να σκεφτείτε ότι η προστασία αυτή απαιτεί πολύπλοκες PHP λύσεις ή λύσεις που βασίζεται σε JavaScript, χρήματα για να πληρώσετε τους προγραμματιστές, πολύ χρόνο για να προσθέσετε το κάθε αρχείο σε διάφορα firewalls και πίνακες, αλλά όχι, δεν χρειάζονται παρά μόνο αυτές οι τρεις γραμμές κώδικα.RewriteEngine On RewriteCond %{HTTP_REFERER} !^ RewriteCond %{HTTP_REFERER} !^http://(www\.)?iguru\.gr/ [nc] RewriteRule .*\.(gif|jpg|png)$ http://iguru.gr/bullshit_hotlink_image.png [nc]Συμπίεση κειμένου, HTML, JavaScript, CSS, και ο κώδικας XML
Το παρακάτω απόσπασμα είναι για Apache servers και θα συμπιέσει αυτόματα αρχεία HTML, JavaScript, CSS, και XML, όταν τα στέλνει προς τους χρήστες σας.<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/x-component AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript </IfModule>Απενεργοποιήστε την περιήγηση σε καταλόγους σε οποιαδήποτε ιστοσελίδα
Ανεξάρτητα από το χρησιμοποιείτε το αρχείο .htaccess στο WordPress, Drupal, Joomla, ή με Java, Python, ή με κώδικα Ruby, η ακόλουθη γραμμή κώδικα στο .htaccess αρχείο σας θα αποτρέψει οποιονδήποτε χρήστη από την εξερεύνηση των καταλόγων του ιστότοπού σας και την δημόσια θέαση των αρχείων που έχουν αποθηκευτεί στο εσωτερικό τους.Options -IndexesΑπενεργοποιήστε την εκτέλεση PHP μέσα σε ένα φάκελο ή για ένα συγκεκριμένο αρχείο
Χρησιμοποιώντας τις δυνατότητες φιλτραρίσματος αρχείων του .htaccess, οι webmasters μπορούν να στοχεύσουν αρχεία PHP (HTML, JavaScript, εικόνες, κλπ), και στη συνέχεια να “κάνουν κάτι” σε αυτά. Επειδή γενικά τις περισσότερες φορές οι webmasters θέλουν να εμποδίσουν την πρόσβαση χρησιμοποιώντας αρχεία .htaccess, αυτό το μικρό απόσπασμα μπορεί να είναι αρκετά χρήσιμο.#ΟΛΑ ΤΑ PHP ΑΡΧΕΙΑ <Files *.php> deny from all </Files> #ΚΑΠΟΙΟ ΣΥΓΚΕΚΡΙΜΕΝΟ PHP ΑΡΧΕΙΟ <Files file_name.php> deny from all </Files>Απαγορεύστε την πρόσβαση σε μία ή περισσότερες ΙΡ διευθύνσεις
Εάν υπάρχουν μόνο λίγοι χρήστες που έχουν την τάση να κάνουν κατάχρηση της υπηρεσίας σας, δεν χρειάζεται να εφαρμόσετε κάποιο κανόνα στο τείχος προστασίας μόνο για αυτούς. Αυτό μπορεί να γίνει στο .htaccess αρχείο κάπως έτσι:<Limit GET POST> order allow,deny #ΑΠΑΓΟΡΕΥΣΗ (BAN) ΜΙΑΣ IP deny from xxx.xxx.xxx.xxx #ΑΠΑΓΟΡΕΥΣΗ (BAN) ΟΛΟΚΛΗΡΗΣ ΚΑΤΗΓΟΡΙΑΣ ΑΠΟ IPS deny from xxx.xxx.xxx.xxx/24 allow from allΣημείωση: όπου xxx αντίστοιχα νούμερα των IPS που θέλετε να πετάξετε έξω
Βέβαια δε είναι απαραίτητο να κάνετε χρήση του αρχείο .htaccess τόσο τακτικά και για όλες τις παραπάνω περιπτώσεις. Όλα αυτά τα αποσπάσματα κώδικα μπορούν να χρησιμοποιηθούν επίσης και στο httpd.conf σας, καθώς το αρχείο .htaccess θα πρέπει να χρησιμοποιείται μόνο σε περιπτώσεις όπου χρειάζονται κανόνες ανά κατάλογο και την πρόσβαση στο httpd.conf δεν επιτρέπεται ή δεν είναι δυνατή.