Σε αυτό το άρθρο
Ο διακομιστής ιστού Apache είναι ένα από τα κύρια δομικά στοιχεία του Διαδικτύου, που εξυπηρετεί ιστότοπους και εφαρμογές. Είναι ένα πολύπλοκο σύστημα με πολλές επιλογές, και ένα από τα πιο σημαντικά είναι το Rewrite Module ή «mod_rewrite» για συντομία. Σε αυτό το άρθρο, θα ρίξουμε μια ματιά στις χρήσεις του mod_rewrite και, στη συνέχεια, θα διερευνήσουμε πώς να το ρυθμίσετε στον δικό σας ιστότοπο που βασίζεται στο Apache.
Ο σκοπός της ενότητας Apache Rewrite
Ο σκοπός αυτής της ενότητας είναι η επανεγγραφή διευθύνσεων URL με διάφορους χρήσιμους τρόπους. Αυτό σημαίνει ότι όταν οι χρήστες φτάνουν στον ιστότοπό σας μέσω μιας διεύθυνσης URL (είτε πληκτρολογώντας τον είτε επιλέγοντας έναν σύνδεσμο που τον περιέχει), θα «καταλήξουν» σε μια άλλη διεύθυνση URL. Υπάρχουν διάφοροι λόγοι για τους οποίους μπορεί να θέλετε να το κάνετε αυτό.
Ανακατεύθυνση χρηστών
Μπορείτε να χρησιμοποιήσετε το mod_rewrite για να κατευθύνετε χρήστες από παλαιότερες, ξεπερασμένες σελίδες που ενδέχεται να εξακολουθούν να εμφανίζονται στα αποτελέσματα αναζήτησης, σε νεότερες, ενημερωμένες σελίδες. Για παράδειγμα, ας υποθέσουμε ότι έχετε μια σελίδα στη διεύθυνση https://www.mysite.com/review2015; Εάν κάποιος το συναντήσει ως σύνδεσμο και το επιλέξει, μπορείτε να χρησιμοποιήσετε έναν κανόνα επανεγγραφής για να τον κατευθύνετε στη διεύθυνση http://www.mysite.com/review2019.
Ευκολότερο να θυμάστε τις διευθύνσεις URL
Ίσως έχετε δει συνδέσμους που σχετίζονται με το ηλεκτρονικό εμπόριο με διευθύνσεις URL όπως https://www.thestore.net/3d78654954c29ace998658. Οι προγραμματιστές χρησιμοποιούν τέτοιες ετικέτες για να βεβαιωθούν ότι τα στοιχεία έχουν ένα μοναδικό αναγνωριστικό, αλλά για τύπους που δεν είναι τεχνικοί είναι δύσκολο να θυμάστε. Ευτυχώς, ένας κανόνας επανεγγραφής μπορεί να σας βοηθήσει να δημοσιεύσετε μια ωραία διεύθυνση URL, όπως https://www.thestore.net/notebooks/spiral/3-subject-spiral/, η οποία, όταν ακολουθηθεί, οδηγεί έναν επισκέπτη σε αυτόν με το άσχημο URL.
Μοναδικά ονόματα σελίδων
Στις πρώτες ημέρες του Ιστού, ήταν σύνηθες να βλέπετε το πραγματικό όνομα των αρχείων σελίδας όταν επισκεφτήκατε έναν ιστότοπο. Για παράδειγμα, η σελίδα «Σχετικά με εμάς» ενός ιστότοπου ενδέχεται να είναι «http://www.someguys.org/about.html.» Αλλά υπάρχουν δύο λόγοι που δεν τα βλέπετε πλέον. Το πρώτο είναι ότι πολλοί ιστότοποι διαχειρίζονται συστήματα διαχείρισης περιεχομένου, τα οποία διαθέτουν μόνο λίγα πραγματικά αρχεία σελίδων. Το υπόλοιπο περιεχόμενο προστίθεται δυναμικά καθώς προβάλλεται η σελίδα, οπότε όλες οι σελίδες μπορεί να μοιάζουν να έχουν την ίδια διεύθυνση URL, όπως «http://www.someguys.org/index.php.» Η επανεγγραφή διευθύνσεων URL σάς επιτρέπει να έχετε την εμφάνιση αυτών των ξεχωριστών σελίδων, ενώ χρησιμοποιείτε ακόμα ένα δυναμικό CMS για τη διαχείριση του ιστότοπού σας.
Πιο κατανοητές διευθύνσεις URL
Οι μηχανές αναζήτησης κατατάσσουν σελίδες υψηλότερες όταν έχουν εύκολα κατανοητές διευθύνσεις URL. Αυτό σημαίνει ότι είναι χρήσιμο για τους ιστότοπους να έχουν μια διεύθυνση URL όπως «https://www.thecompany.com/services/consulting» αντί για «https://www.thecompany.com/index.php?section=services&page=consulting» δεδομένου ότι το τελευταίο μέρος μοιάζει περισσότερο με κώδικα παρά με διεύθυνση URL. Η επανεγγραφή διασφαλίζει ότι βάζετε πάντα το καλύτερο πρόσωπό σας, από τη σκοπιά της διεύθυνσης URL.
Πώς να ρυθμίσετε το mod_rewrite στον ιστότοπό σας
Η χρήση της επανεγγραφής URL στο Apache απαιτεί δύο βασικά στοιχεία:
- Ενεργοποίηση της πραγματικής μονάδας επανεγγραφής στο Apache
- Καταχώριση των απαραίτητων κανόνων επανεγγραφής σε αρχείο .htaccess.
Ενώ οι χρήσεις για την επανεγγραφή διευθύνσεων URL ισχύουν εξίσου σε άλλους διακομιστές ιστού όπως οι υπηρεσίες IIS ή nginx, το mod_rewrite και οι παρακάτω μέθοδοι θα ισχύουν μόνο για το Apache.
Ενεργοποίηση συνάρτησης επανεγγραφής στο Apache
Αρχικά, θα πρέπει να ενεργοποιήσετε τη λειτουργία επανεγγραφής στην εγκατάσταση του Apache.
-
Θα πρέπει να βρείτε πού βρίσκεται το αρχείο διαμόρφωσης του Apache. Αυτό θα εξαρτηθεί από το πρόγραμμα εγκατάστασης που χρησιμοποιήσατε.
- Στα Windows θα πρέπει να αναζητήσετε έναν κατάλογο που ονομάζεται «/ conf» κάτω από τον κατάλογο εγκατάστασης Apache.
- Στο δημοφιλές πρόγραμμα εγκατάστασης XAMPP του macOS, βρίσκεται στο / Applications / XAMPP / xamppfiles / apache2 / conf.
- Στο Linux, θα εμφανιζόταν στον κατάλογο / etc / apache2. Σε κάθε περίπτωση, αναζητάτε ένα αρχείο που ονομάζεται «httpd.conf», «http.conf» ή «apache2.conf», ώστε να μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία αναζήτησης του λειτουργικού σας συστήματος για να τα αναζητήσετε.
-
Ανοίξτε το αρχείο config σε ένα πρόγραμμα επεξεργασίας κειμένου, όπως το Σημειωματάριο των Windows ή το TextEdit σε macOS.
-
Αναζητήστε τη γραμμή «#LoadModule rewrite_module modules / mod_rewrite.so», και καταργήστε το hashtag στην αρχή. Αυτό σημαίνει ένα σχόλιο, που σημαίνει ότι όταν είναι εκεί, ο διακομιστής Apache θα αγνοήσει τα πάντα σε αυτήν τη γραμμή. Καταργήστε το hashtag και την επόμενη φορά που το Apache θα εκτελέσει αυτήν τη γραμμή όταν ξεκινά.
-
Αποθηκεύστε το αρχείο ρυθμίσεων και επανεκκινήστε τον διακομιστή Apache.
-
Εναλλακτικά, σε ορισμένες εκδόσεις του Linux θα δείτε ορισμένους καταλόγους όπως «/ etc / apache2 / mods-available» και «/ etc / apache2 / mods-enabled.» Αυτά περιέχουν κομμάτια αρχείων διαμόρφωσης που συγκεντρώνονται δυναμικά. Σε αυτήν την περίπτωση, μπορείτε να εκτελέσετε τις ακόλουθες εντολές για να ενεργοποιήσετε πρώτα τη μονάδα επανεγγραφής και, στη συνέχεια, κάντε επανεκκίνηση του διακομιστή Apache: sudo a2enmod rewrite
systemctl επανεκκίνηση apache2 -
Τώρα ο διακομιστής Apache είναι έτοιμος να ξαναγράψει διευθύνσεις URL για εσάς. Μόνο τώρα πρέπει να του πείτε ποια να ξαναγράψετε και υπό ποιες συνθήκες.
Καθορισμός κανόνων Mod_Rewrite στον ιστότοπό σας
Θα πρέπει να ορίσετε τους κανόνες για το mod_rewrite χρησιμοποιώντας τη γλώσσα της κανονικής έκφρασης. Ευτυχώς, υπάρχει διαθέσιμη βοήθεια. Για μια δεδομένη επανεγγραφή που θέλετε να ενεργοποιήσετε, μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως η γεννήτρια κανόνων του VisioSpark.
-
Εισαγάγετε τη διεύθυνση URL από την οποία θέλετε να ξαναγράψετε, δηλαδή αυτή που θα εισαγάγει ένας χρήστης, στο Από: πεδίο.
-
Εισαγάγετε τη διεύθυνση URL στην οποία θέλετε να ξαναγράψετε, δηλαδή εκείνη στην οποία θα καταλήξει ο χρήστης, στο Προς την: πεδίο.
-
Επιλέξτε το στοιχείο ελέγχου Captcha και, στη συνέχεια, επιλέξτε Πηγαίνω. Στη συνέχεια, η γεννήτρια θα πρέπει να παρέχει ένα αποτέλεσμα ξεκινώντας από το «RewriteRule. Εάν τυχαίνει να βρείτε άλλη γεννήτρια, αυτά τα βήματα μπορεί να είναι ελαφρώς διαφορετικά, αλλά ελπίζουμε στο ίδιο πάρκο.
Εισαγωγή κανόνων Mod_Rewrite για τον ιστότοπό σας
Αυτός είναι λοιπόν ένας πολύ καλός τρόπος για να δημιουργήσετε αυτούς τους κανόνες. Αλλά πού τα βάζεις; Για να χρησιμοποιήσετε κανόνες σε έναν ιστότοπο, θα πρέπει να δημιουργήσετε ένα αρχείο που ονομάζεται «.htaccess» στη ρίζα του ιστότοπου. Είναι κάπως εξαρτώμενο από την πλατφόρμα όπου αποθηκεύονται τα αρχεία για έναν συγκεκριμένο ιστότοπο, αλλά θα πρέπει να το έχετε καταλάβει για να αναπτύξετε τον ιστότοπό σας εκεί πρώτα. Μπορεί να υπάρχει ήδη ένα αρχείο με αυτό το όνομα. Αν ναι, υπέροχο! Μπορείτε απλά να προσθέσετε τις γραμμές σας σε αυτό το αρχείο.
-
Δημιουργήστε ένα νέο αρχείο κειμένου με το όνομα «.htaccess«στη ρίζα του ιστότοπού σας.
-
Στην πρώτη γραμμή, εισαγάγετε τον παρακάτω κωδικό. Αυτό ενημερώνει τον διακομιστή που θέλετε να ενεργοποιήσετε την επανεγγραφή για τον τρέχοντα ιστότοπο. Επανεγγραφή Ενεργοποίησης
-
Στη συνέχεια, προσθέστε καθεμία από τις γραμμές που δημιουργήσατε με τη γεννήτρια. Η αρχή του αρχείου μας θα μοιάζει με αυτό: RewriteEngine on
RewriteRule ^ σημειωματάρια / σπιράλ / 3-θέμα-σπιράλ / $ / 3d78654954c29ace998658; &% {QUERY_STRING} -
Όπως συμβαίνει με οποιαδήποτε αλλαγή διαμόρφωσης Apache, είναι καλή ιδέα να κάνετε επανεκκίνηση του διακομιστή.
Η χρήση του Mod_Rewrite απαιτεί χρόνο, αλλά τα αποτελέσματα αξίζουν τον κόπο
Η χρήση της λειτουργίας mod_rewrite στο Apache απαιτεί σίγουρα κάποια προσπάθεια. Πρέπει να παίζεις με αρχεία διαμόρφωσης βάσει κειμένου, να βρεις έναν τρόπο για να πάρεις πολύ λεπτές τακτικές εκφράσεις σε αυτά τα αρχεία και να ξέρεις πώς να σταματήσεις και να επανεκκινήσεις χειροκίνητα την υπηρεσία. Πιθανότατα θα απαιτηθούν πολλές δοκιμές και σφάλματα πριν λάβετε κάτι που δεν οδηγεί σε σφάλμα και συμπεριφέρεται σωστά. Τούτου λεχθέντος, μόλις το καταλάβετε, θα έχετε μεγάλο όφελος από το mod_rewrite. Οι επισκέπτες σας θα μπορούν να θυμούνται καλύτερα τις διευθύνσεις URL και η κατάταξή σας στο Google πιθανότατα θα βελτιωθεί. Τα προκύπτοντα «όμορφα URL» δεν είναι μόνο για εμφάνιση. Είναι επίσης λειτουργικά.