Ένα .htaccess αρχείο ή ένα κατανεμημένο αρχείο ρυθμίσεων είναι ένα ισχυρό αρχείο που χρησιμοποιείται για τον έλεγχο και τη διαχείριση των ρυθμίσεων ενός ιστότοπου. Όλες οι αλλαγές ρυθμίσεων γίνονται ανά κατάλογο για να διασφαλιστεί ότι τα κύρια αρχεία ρυθμίσεων του διακομιστή δεν επηρεάζονται.
Πότε προτιμάται η χρήση του αρχείου .htaccess
Είτε στοχεύετε στη φόρτωση σελίδων σφάλματος είτε στην εφαρμογή ασφάλειας κωδικού πρόσβασης, ένα .htaccess έχει μια λίστα χρήσεων. Μερικά από τα πιο κοινά παραδείγματα περιλαμβάνουν:
-
Προσθήκη ανακατευθύνσεων για μια συγκεκριμένη διεύθυνση URL ή μια λίστα διευθύνσεων URL.
-
Ενεργοποίηση προστασίας με κωδικό πρόσβασης σε συγκεκριμένους καταλόγους σε έναν διακομιστή.
-
Φόρτωση προσαρμοσμένων σελίδων σφάλματος.
-
Επιβολή της χρήσης HTTPS αντί για HTTP σε έναν ιστότοπο.
-
Αποκλεισμός στοχευμένων διευθύνσεων IP ή τομέων.
Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στα βήματα για να ενεργοποιήσετε, να δημιουργήσετε και να χρησιμοποιήσετε το αρχείο .htaccess.
Προαπαιτούμενα
Για να παρακολουθήσετε αυτό το σεμινάριο, πρέπει να έχετε τα εξής:
-
Η τελευταία έκδοση του Ubuntu να είναι εγκατεστημένη στο σύστημά σας.
-
Διακομιστής ιστού Apache πρέπει να είναι εγκατεστημένος στον διακομιστή Ubuntu σας.
-
Ρύθμιση εικονικού κεντρικού υπολογιστή Apache για το domain σας.
-
Οι χρήστες του συστήματος πρέπει να έχουν προνόμια sudo.
-
Ασφαλής εικονικός κεντρικός υπολογιστής με SSL.
-
Ακολουθήστε τον οδηγό Securing Apache with Let’s Encrypt on Ubuntu 18.04 εάν διαμορφώσετε και ασφαλίσετε τον Apache χρησιμοποιώντας το προσαρμοσμένο domain σας.
-
Εναλλακτικά, μπορείτε να Δημιουργήσετε ένα αυτο-υπογεγραμμένο πιστοποιητικό SSL για τον Apache στο Ubuntu 20.04 εάν σκοπεύετε να χρησιμοποιήσετε τον Apache για ανάγκες δοκιμών.
-
|
Σημείωση: Υπάρχουν πολλοί πάροχοι domain που μπορείτε να λάβετε υπόψη για την αγορά προσαρμοσμένων domain στο διαδίκτυο. Namecheap, Freenom, και Bluehost, για να αναφέρουμε μερικούς, είναι γνωστοί για την εξαιρετική τους εξυπηρέτηση. |
Μόλις τελειώσετε με την αρχική ρύθμιση, συνδεθείτε στον διακομιστή σας ως χρήστης sudo και ας ξεκινήσουμε.
Βήμα 1 — Ενεργοποίηση του αρχείου .htaccess
Από προεπιλογή, το .htaccess αρχείο είναι απενεργοποιημένο. Πρέπει πρώτα να αλλάξουμε τη ρύθμιση του Apache και να ενεργοποιήσουμε το .htaccess αρχείο.
Ανοίξτε το apache2/sites-available/your_domain.conf αρχείο εικονικού κεντρικού υπολογιστή χρησιμοποιώντας το nano ή οποιονδήποτε προτιμώμενο επεξεργαστή κειμένου:
|
1 |
$ sudo nano /etc/apache2/sites-available/your_domain.conf |
Υποθέτοντας ότι είστε έτοιμοι με τη ρύθμιση που συζητήθηκε στον οδηγό για τον διακομιστή ιστού Apache guide, θα βρείτε την ακόλουθη λεπτομέρεια ρύθμισης:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Στη συνέχεια, συμπεριλάβετε το ακόλουθο περιεχόμενο Directory μέσα στο μπλοκ VirtualHost :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/your_domain> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory> </VirtualHost> |
Στο παραπάνω μπλοκ κώδικα, η γραμμή AllowOverride All κάτω από την ενότητα Directory είναι η πιο σημαντική από όλες. Αυτή η ενότητα επιτρέπει τη χρήση αρχείων .htaccess .
Μετά από αυτό, αποθηκεύστε την εργασία σας και κλείστε το αρχείο. Εάν χρησιμοποιείτε τον επεξεργαστή κειμένου nano, χρησιμοποιήστε τη συντόμευση CTRL + X, Y, και ENTER για να κλείσετε το αρχείο.
Ελέγξτε τη διαμόρφωση προτού επανεκκινήσετε τον διακομιστή ιστού:
|
1 |
$ sudo apache2ctl configtest |
Θα δείτε Syntax OK ως έξοδο εάν όλα είναι στη θέση τους. Τώρα, επανεκκινήστε τον διακομιστή για να προσθέσετε την πολιτική κωδικών πρόσβασης:
|
1 |
$ sudo systemctl restart apache2 |
Μόλις ενεργοποιηθούν οι ρυθμίσεις του αρχείου .htaccess, ήρθε η ώρα να δημιουργήσετε ένα νέο αρχείο.
Βήμα 2 — Δημιουργία αρχείου .htaccess
Η δημιουργία ενός αρχείου .htaccess είναι απλή. Πρέπει να μεταβείτε στον ριζικό κατάλογο ιστού (web root), δηλαδή στην πηγή, για να εντοπίσετε το αρχείο .htaccess για να βεβαιωθείτε ότι οι αλλαγές στη διαμόρφωση εκτελούνται σωστά.
|
Σημείωση: Να είστε προσεκτικοί κατά τον εντοπισμό του αρχείου .htaccess . Ένα μικρό σφάλμα στη διαμόρφωση μπορεί να επηρεάσει αρνητικά τον κατάλογό του και τους καταλόγους που τον ακολουθούν. Για παράδειγμα, εάν στοχεύετε σε πολλούς ιστότοπους στον ίδιο διακομιστή Apache, τοποθετήστε το αρχείο .htaccess στον ριζικό κατάλογο ιστού που έχει αντιστοιχιστεί με τον ιστότοπο. |
Εάν έχετε ακολουθήσει την προϋπόθεση που συζητήθηκε παραπάνω, θα βρείτε τον ριζικό κατάλογο ιστού (root) στο /var/www/my_domain/.htaccess. Στη συνέχεια, δημιουργήστε ένα αρχείο .htaccess για τον ιστότοπό σας χρησιμοποιώντας:
|
1 |
$ sudo nano /var/www/your_domain/.htaccess |
Μόλις έχουμε έτοιμο το αρχείο .htaccess, ας δούμε μερικές από τις περιπτώσεις χρήσης του.
Βήμα 3 — Κοινές χρήσεις του αρχείου .htaccess

Η χρήση μιας σελίδας .htaccess στον ιστότοπό σας συνοδεύεται από μια λίστα πλεονεκτημάτων. Ας συζητήσουμε το καθένα λεπτομερώς:
-
Ανακατεύθυνση URL
Η ανακατεύθυνση URL, που αναφέρεται επίσης ως προώθηση URL, είναι μια λειτουργία διακομιστή ιστού που χρησιμοποιείται για την ανακατεύθυνση ενός επισκέπτη ενός τομέα σε ένα άλλο URL. Μπορείτε να χρησιμοποιήσετε το .htaccess για τις ανάγκες ανακατεύθυνσης URL. Προσθέστε τα ακόλουθα στο αρχείο .htaccess για να αντιστοιχίσετε το URL προέλευσης στο URL προορισμού:
|
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^testdomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.testdomain.com [NC] RewriteRule ^(.*)$ http://demodomain.com/$1 [L,R=301,NC] |
-
Δημιουργία προσαρμοσμένων σελίδων σφάλματος
Μια χρήσιμη πτυχή του αρχείου .htaccess είναι η δημιουργία μιας προσαρμοσμένης σελίδας σφάλματος. Γενικά, όταν ένας χρήστης συναντά μια σελίδα που δεν υπάρχει στον ιστότοπο, εμφανίζεται ένα μήνυμα σφάλματος στην οθόνη. Μερικοί από τους κοινούς κωδικούς σφάλματος HTTP περιλαμβάνουν:
-
400 Bad Request
-
401 Unauthorization
-
403 Forbidden
-
404 Not Found
-
500 Internal Server Error
-
502 Bad Gateway
-
503 Service Unavailable
Σε αντίθεση με το προεπιλεγμένο σφάλμα σελίδας διακομιστή «Δεν βρέθηκε η σελίδα», χρησιμοποιήστε το αρχείο .htaccess για να παρέχετε στους χρήστες σας μια βελτιωμένη, φιλική προς τον χρήστη εμπειρία περιήγησης.
-
Ρύθμιση ελέγχου ταυτότητας ασφαλείας
Χρησιμοποιώντας το αρχείο .htaccess , μπορείτε επίσης να ρυθμίσετε τον έλεγχο ταυτότητας ασφαλείας. Για αυτό, πρέπει να δημιουργήσετε ένα αρχείο .htpasswd για τον έλεγχο ταυτότητας των χρηστών.
Χρησιμοποιήστε την εντολή htpasswd για να δημιουργήσετε ένα αρχείο κωδικών πρόσβασης για σκοπούς ασφαλείας. Ο Apache θα χρησιμοποιήσει αυτό το αρχείο κωδικών πρόσβασης για τον έλεγχο ταυτότητας των επαληθευμένων χρηστών. Μεταβείτε στον κατάλογο /etc/apache2 και δημιουργήστε ένα εμπιστευτικό αρχείο με το όνομα .htpasswd.
Για να δημιουργήσετε το απαραίτητο αρχείο .htpasswd , χρησιμοποιήστε το -c επιλογή την πρώτη φορά που χρησιμοποιείτε αυτό το βοηθητικό πρόγραμμα ασφάλειας κωδικού πρόσβασης. Στη συνέχεια, καθορίστε το όνομα χρήστη στο τέλος της εντολής για να καταχωρίσετε μια νέα εγγραφή μέσα στο αρχείο. Μετά από αυτό, αντικαταστήστε το όνομα χρήστη nick (χρησιμοποιείται σε αυτόν τον οδηγό) με το όνομα χρήστη σας:
|
1 |
$ sudo htpasswd -c /etc/apache2/.htpasswd nick |
Στη συνέχεια, θα σας ζητηθεί να εισαγάγετε και να επαληθεύσετε τον κωδικό πρόσβασης του χρήστη.
Συνεχίστε την ανάγνωση αυτού του οδηγού για να μάθετε περισσότερα σχετικά με τη ρύθμιση και τη διαμόρφωση του ελέγχου ταυτότητας με κωδικό πρόσβασης με το Apache στο Ubuntu 20.04.
-
Προσθήκη τύπων MIME
Η ταξινόμηση των αρχείων που χρησιμοποιούνται στο Διαδίκτυο είναι εύκολη χρησιμοποιώντας Multi-Purpose Internet Mail Extensions τύπο (MIME). Σε διάφορα σενάρια όπου ένας ιστότοπος αποτυγχάνει να παραδώσει ένα συγκεκριμένο αρχείο, η προσθήκη επεκτάσεων κάνει τη δουλειά. Χρησιμοποιήστε τον ακόλουθο κώδικα για να προσθέσετε τύπους Multipurpose Internet Mail Extensions (MIME) στον διακομιστή Apache σας στο αρχείο .htaccess αρχείο:
|
1 |
AddType audio/mp4a-latm .m4a |
|
Σημείωση: Στον οδηγό μας, έχουμε έναν τύπο MIME αρχείου ήχου. Αντικαταστήστε την εφαρμογή και την επέκταση αρχείου με τον επιθυμητό τύπο MIME. Επιπλέον, βεβαιωθείτε ότι η διαμόρφωση του εικονικού κεντρικού υπολογιστή (virtual host) και ο κατάλογος τοποθεσίας του αρχείου .htaccess είναι σε θέση να χρησιμοποιήσουν την οδηγία AddType. Διαφορετικά, θα λάβετε ένα 500 Internal Server Error. |
-
Server Side Includes(SSI)
Τα SSI είναι οδηγίες που τροφοδοτούν δυναμικό περιεχόμενο σε μια σελίδα HTML. Χρησιμοποιούνται για την ενημέρωση μεγάλου αριθμού σελίδων με συγκεκριμένα δεδομένα χωρίς την ανάγκη ρητής ενημέρωσης κάθε σελίδας ξεχωριστά.
Στα αρχεία HTML, το Server Side Includes SSI είναι απενεργοποιημένο από προεπιλογή. Προσθέστε τον ακόλουθο κώδικα στο αρχείο .htaccess για να ενεργοποιήσετε το SSI:
|
1 2 |
AddType text/html .shtml AddHandler server-parsed .shtml</pre> |
Οι παραπάνω γραμμές επικυρώνουν πρώτα τα αρχεία .shtml. Στη συνέχεια, η επιβεβαίωση αποστέλλεται στο αρχείο .htaccess επιτρέποντας παράλληλα στον διακομιστή να αναλύσει όλα τα αρχεία .shtml αρχεία.
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το XBitHack για να αναλύσετε πολλαπλά περιεχόμενα .html αντί να μετονομάσετε τις επεκτάσεις .shtml μία προς μία. Προσθέστε την ακόλουθη γραμμή στο αρχείο .htaccess για να χρησιμοποιήσετε το XbitHAck και να ζητήσετε από το Apache να ελέγξει όλα τα αρχεία .html αρχεία:
|
1 |
XBitHack on |
Στη συνέχεια, πρέπει να αλλάξετε τα δικαιώματα για να επιτρέψετε στη σελίδα να χρησιμοποιήσει το XBitHack. Χρησιμοποιήστε την ακόλουθη εντολή chmod για να το κάνετε αυτό:
|
1 |
$ chmod +x pagename.html |
-
Διαχείριση διεύθυνσης IP
Μερικές φορές, μπορεί να θέλετε να αποκλείσετε μια IP ή ένα εύρος διευθύνσεων IP που επισκέπτονται τον ιστότοπό σας για λόγους ασφαλείας. Εισαγάγετε τις ακόλουθες γραμμές κώδικα στο αρχείο .htaccess για να περιορίσετε τη συγκεκριμένη IP:
|
1 |
Order Deny, Allow Deny from A.A.A.A (where A.A.A.A is a specific IPv4 Address) |
Χρησιμοποιήστε μια ξεχωριστή γραμμή για τον αποκλεισμό περισσότερων από μία IP:
|
1 |
Order Deny Allow Deny from A.A.A.A (where A.A.A.A is a specific IPv4 Address) Deny from B.B.B.B (where B.B.B.B is a specific IPv4 Address) |
Επιπλέον, μπορείτε να αποκλείσετε τομείς (domains) από την πρόσβαση στον ιστότοπό σας. Περιορίστε έναν συγκεκριμένο τομέα προσθέτοντας την ακόλουθη γραμμή κώδικα στο αρχείο .htaccess :
Order Deny, Allow Deny from www.blockdomain.com (όπου www.blockdomain.com είναι ένας συγκεκριμένος τομέας)
Σημεία προσοχής κατά τη χρήση του .htaccess
Η προσθήκη ενός αρχείου
.htaccess είναι αναμφισβήτητα μια έξυπνη κίνηση για τη διαμόρφωση του ιστότοπού σας και τη διευκόλυνση των χρηστών. Ωστόσο, οποιεσδήποτε τροποποιήσεις γίνονται στις ρυθμίσεις διαμόρφωσης συνοδεύονται από άλλα κόστη. Ας δούμε μερικούς επιτακτικούς λόγους που υποδεικνύουν γιατί δεν πρέπει να χρησιμοποιείτε το αρχείο
.htaccess :
i. Απώλεια απόδοσης: Κάθε φορά που ένας διακομιστής σαρώνει έναν κατάλογο σελίδας και το αρχείο .htaccess του, η σελίδα φορτώνει. Ως αποτέλεσμα, η απώλεια ταχύτητας και απόδοσης γίνεται πρωταρχικό μέλημα.
ii. Ασφάλεια: Η πρόσβαση στα αρχεία .htaccess παρέχει πλήρη έλεγχο της διαμόρφωσης του διακομιστή. Αυτό σημαίνει ότι οποιοσδήποτε μη εξουσιοδοτημένος χρήστης αποκτήσει πρόσβαση στο .htaccess πρόσβαση στο .htaccess αρχείο, το οποίο με τη σειρά του οδηγεί σε πιθανούς κινδύνους ασφαλείας.
iii. Προσβασιμότητα: Τα .htaccess αρχεία πρέπει να αντιμετωπίζονται με εξαιρετική προσοχή. Εάν υπάρχουν σφάλματα στο .htaccess αρχείο, μπορεί να προκαλέσει την κατάρρευση ολόκληρου του ιστότοπου.
Συμπέρασμα
Σε αυτόν τον οδηγό, αποκτήσαμε μια ολοκληρωμένη εικόνα για την ενεργοποίηση, τη δημιουργία και τη χρήση ενός .htaccess αρχείου. Συζητήσαμε την περίπτωση χρήσης για το πότε και πού το .htaccess αρχείο πρέπει να χρησιμοποιείται. Αξιοποιήστε τα .htaccess αρχεία για να θωρακίσετε τον ιστότοπό σας και να τον προστατεύσετε από επιθέσεις. Ωστόσο, υπάρχουν αρκετές παγίδες στη χρήση αυτού του αρχείου ρυθμίσεων που δεν πρέπει να αγνοηθούν. Με λίγα λόγια, χρησιμοποιήστε τα .htaccess αρχεία ανάλογα με τη χρήση του διακομιστή σας και τις ανάγκες πρόσβασης των χρηστών.
Επιπλέον, υπάρχουν άλλα σεμινάρια δικτύωσης που μπορείτε να βρείτε στο δικό μας blog:
-
Διαμόρφωση βασικού ελέγχου ταυτότητας HTTP με το Nginx σε Ubuntu 20.04
-
Nginx HTTP Proxying, Load Balancing, Buffering, και Caching: Μια επισκόπηση
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.