Tip: Start typing to get instant search results.
Πρακτικά παραδείγματα χρήσης του αρχείου .htaccess
Τα αρχεία .htaccess (Hypertext Access) είναι αρχεία που περιέχουν οδηγίες προς τον web server και επιτρέπουν τη διαμόρφωση παραμέτρων λειτουργίας του. Σε αυτά ορίζονται κανόνες χωρίς να απαιτείται πρόσβαση στις κεντρικές ρυθμίσεις του συστήματος σε επίπεδο server.
Σε όλους τους servers μας επιλέγουμε να κάνουμε χρήση του NGINX web server. Στα πλάνα managed hosting που παρέχουμε και λειτουργούν με hosting panel (για παράδειγμα shared hosting, semi-dedicated hosting κ.α.), εκτός από NGINX, γίνεται χρήση και Apache web server με LiteSpeed PHP API module, οπότε είναι εφικτή η αξιοποίηση των αρχείων .htaccess. Στους dedicated servers μας, που τρέχουμε αποκλειστικά NGINX web server, φροντίζουμε εμείς για την κατάλληλη μετατροπή των κανόνων .htaccess σας σε NGINX κανόνες με τον βέλτιστο δυνατό τρόπο.
Κάθε υποφάκελος μπορεί να έχει δικό του αρχείο .htaccess με ξεχωριστούς κανόνες. Το κεντρικό αρχείο .htaccess βρίσκεται στον κύριο φάκελο που περιέχει τα αρχεία του website (π.χ. φάκελος public_html). Αν το αρχείο δεν υπάρχει τότε μπορείτε να το δημιουργήσετε. Αν υπάρχει ήδη μπορείτε να προσθέσετε τους έξτρα κανόνες (συχνά η προσθήκη γίνεται στην κορυφή του αρχείου).
Παρουσιάζουμε μερικά χρήσιμα παραδείγματα αξιοποίησης του αρχείου .htaccess.
Ανακατεύθυνση (Redirect)
Υπάρχουν διάφοροι λόγοι για τους οποίους μπορεί να χρειαστεί να κάνετε ανακατεύθυνση στο website σας. Παρακάτω δίνουμε κάποια χρήσιμα παραδείγματα.
Redirect όλων των URLs του παλιού domain στην αρχική σελίδα του νέου
Είναι σημαντικό κατά την αλλαγή του domain του website σας, να ανακατευθύνετε όλα τα URLs του παλιού σας domain στην αρχική σελίδα του νέου. Έστω λοιπόν για παράδειγμα, πως θέλετε να μεταφέρετε όλα τα παλιά URLs του oldsite.org στην αρχική σελίδα του newsite.org. Αρκεί να προσθέσετε την παρακάτω γραμμή στο .htaccess.
Redirect 301 / https://newsite.org/
Με αυτόν τον τρόπο, το https://oldsite.org/test/page.html για παράδειγμα, θα κάνει redirect στο https://newsite.org/
Redirect όλων των παλιών URLs στα αντίστοιχα URLs του νέου
Αν κατά την αλλαγή του domain του website σας, υπάρχει ένα προς ένα αντιστοιχία στα παλιά και στα νέα URLs, τότε μπορείτε να βάλετε όλα τα παλιά URLs να κάνουν redirect στα αντίστοιχα URLs του νέου domain. Για να το κάνετε αυτό, αρκεί να βάλετε τις παρακάτω γραμμές μέσα στο .htaccess
# Redirect oldsite.org URLs to newsite.org
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^oldsite.org$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.org$
RewriteRule (.*)$ https://www.newsite.org/$1 [R=301,L]
</IfModule>
Με αυτόν τον τρόπο, το https://oldsite.org/test/page.html για παράδειγμα, θα κάνει redirect στο https://newsite.org/test/page.html
Redirect υποφακέλου του website σε νέο subdomain
Έστω πως θέλετε να ανακατευθείτε όλα τα requests που γίνονται στον υποφάκελο blog/ σε ένα νέο subdomain, όπως το blog.example.org. Αρκεί να προσθέσετε τις παρακάτω γραμμές στο .htaccess αρχείο.
# Redirect /blog/* to blog subdomain RewriteRule ^blog/(.*)$ https://blog.example.org/$1 [R=301,L]
Με αυτόν τον τρόπο, το https://example.org/blog/page.html για παράδειγμα, θα κάνει redirect στο https://blog.example.org/page.html
Redirect non-www domain στο www
Για τις μηχανές αναζήτησης το mysite.org και το www.mysite.org θεωρούνται δύο διαφορετικές ιστοσελίδες. Αν η σελίδα φορτώνει και με τους δύο τρόπους χωρίς ανακατεύθυνση, η Google μπορεί να “μπερδευτεί” ως προς το ποια έκδοση να ευρετηριάσει, και αυτό μπορεί να οδηγήσει σε ποινή για διπλό περιεχόμενο, επηρεάζοντας αρνητικά την κατάταξή σας (SEO).
Είναι επομένως σημαντικό να διασφαλίζετε ότι η σελίδα σας θα φορτώνει πάντα με το πρόθεμα www (ή χωρίς). Για να το κάνετε αυτό, αρκεί να προσθέσετε τις παρακάτω γραμμές στο .htaccess
# Redirect non-www to www
IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
Block ανεπιθύμητης διεύθυνσης IP
Πολλές φορές προκύπτει η ανάγκη να μπλοκάρουμε την πρόσβαση στο website μας, σε κάποια κακόβουλη IP. Αυτό μπορεί να γίνει εύκολα με μία εγγραφή στο .htaccess.
Για παράδειγμα, έστω πως θέλουμε να μπλοκάρουμε 2 IP διευθύνσεις, την 203.0.113.68 και την 198.51.100.23. Τότε αρκεί να προσθέσουμε τις παρακάτω γραμμές στο .htaccess.
# Block selected IPs # Apache 2.4+ <RequireAll> Require all granted Require not ip 203.0.113.68 Require not ip 198.51.100.23 </RequireAll>
Block ανεπιθύμητου bot
Άλλος ένας χρήσιμος τρόπος να χρησιμοποιήσουμε το .htaccess αρχείο, είναι για να μπλοκάρουμε κάποιο bot. Έστω για παράδειγμα πως θέλουμε να μπλοκάρουμε τα bots Jyxobot και SBIder, τα οποία στέλνουν User-Agent “Jyxobot” και “SBIder” αντίστοιχα, οπότε αρκούν οι παρακάτω γραμμές.
# Block some bots
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "Jyxobot|SBIder" [NC]
RewriteRule .* - [F,L]
</IfModule>Με αυτόν τον τρόπο, μπορούμε να μπλοκάρουμε bots τα οποία είτε είναι κακόβουλα, είτε πραγματοποιούν υπερβολικά μεγάλο πλήθος επισκέψεων σε μικρό χρονικό διάστημα προς το website μας με αποτέλεσμα να προκαλούν την εξάντληση των διαθέσιμων πόρων του. Παρόλα αυτά, είναι σημαντικό να μην μπλοκάρουμε τα “καλά” bots όπως της Google, καθώς η πρόσβασή τους στο website μας είναι απαραίτητη για τη σωστή ευρετηρίαση και προβολή του.