Νέες ανακατευθύνσεις κανονικής έκφρασης τομέα (Regex) στο WordPress
Τις τελευταίες εβδομάδες, βοηθάμε έναν πελάτη να κάνει μια περίπλοκη μετεγκατάσταση με το WordPress. Ο πελάτης είχε δύο προϊόντα, και τα δύο από τα οποία έχουν γίνει δημοφιλή σε σημείο που έπρεπε να διαχωρίσουν τις επιχειρήσεις, την επωνυμία και το περιεχόμενο σε ξεχωριστούς τομείς. Είναι η δέσμευση!
Ο υπάρχων τομέας τους διατηρείται, αλλά ο νέος τομέας θα έχει όλο το περιεχόμενο σε σχέση με αυτό το προϊόν… από εικόνες, δημοσιεύσεις, μελέτες περιπτώσεων, λήψεις, φόρμες, βάση γνώσεων κ.λπ. Κάναμε έναν έλεγχο και ανιχνεύσαμε τον ιστότοπο για να διασφαλίσουμε ότι δεν θα Μην χάσετε ούτε ένα στοιχείο.
Μόλις είχαμε θέσει και λειτουργήσει τον νέο ιστότοπο, είχε έρθει η ώρα να τραβήξουμε το διακόπτη και να το θέσουμε σε λειτουργία. Αυτό σήμαινε ότι τυχόν διευθύνσεις URL από τον κύριο ιστότοπο που ανήκαν σε αυτό το προϊόν πρέπει να ανακατευθυνθούν στον νέο τομέα. Διατηρήσαμε τις περισσότερες διαδρομές συνεπείς μεταξύ των ιστότοπων, οπότε το κλειδί ήταν η σωστή ρύθμιση των ανακατευθύνσεων.
Ανακατεύθυνση προσθηκών στο WordPress
Υπάρχουν δύο δημοφιλή πρόσθετα διαθέσιμα που κάνουν εξαιρετική δουλειά στη διαχείριση ανακατευθύνσεων με το WordPress:
- Ανακατεύθυνση - ίσως το καλύτερο plugin στην αγορά, με δυνατότητες κανονικής έκφρασης και ακόμη και κατηγορίες για τη διαχείριση των ανακατευθύνσεων.
- Rankmath SEO - αυτό το ελαφρύ plugin SEO είναι μια ανάσα καθαρού αέρα και κάνει τη λίστα μου Καλύτερες προσθήκες WordPress στην αγορά. Έχει ανακατευθύνσεις ως μέρος της προσφοράς του και θα εισάγει ακόμη και τα δεδομένα ανακατεύθυνσης εάν μεταφερθείτε σε αυτό.
Εάν χρησιμοποιείτε μια μηχανή Managed WordPress Hosting όπως WPEngine, διαθέτουν μια ενότητα για τη διαχείριση ανακατευθύνσεων προτού το άτομο φτάσει ποτέ στον ιστότοπό σας… μια αρκετά ωραία δυνατότητα που μπορεί να μειώσει τον λανθάνοντα χρόνο και τα γενικά έξοδα στη φιλοξενία σας.
Και, φυσικά, μπορείτε γράψτε κανόνες ανακατεύθυνσης στο αρχείο .htaccess στον διακομιστή WordPress… αλλά δεν θα το συνιστούσα. Είστε ένα σφάλμα σύνταξης που δεν καθιστά τον ιστότοπό σας απρόσιτο!
Πώς να δημιουργήσετε μια ανακατεύθυνση Regex
Στο παράδειγμα που παρέχω παραπάνω, μπορεί να φαίνεται απλό να κάνετε μια τυπική ανακατεύθυνση από έναν υποφάκελο στον νέο τομέα και τον υποφάκελο:
Source: /product-a/
Destination: https://newdomain.com/product-a/
Υπάρχει όμως πρόβλημα με αυτό. Τι γίνεται αν έχετε διανείμει συνδέσμους και καμπάνιες που έχουν ερωτήματα για παρακολούθηση καμπάνιας ή παραπομπές; Αυτές οι σελίδες δεν θα ανακατευθύνουν σωστά. Ίσως η διεύθυνση URL είναι:
https://existingdomain.com/product-a/?utm_source=newsletter
Επειδή γράψατε μια ακριβή αντιστοίχιση, αυτή η διεύθυνση URL δεν θα ανακατευθυνθεί πουθενά! Έτσι, μπορεί να μπείτε στον πειρασμό να το κάνετε μια κανονική έκφραση και να προσθέσετε ένα μπαλαντέρ στη διεύθυνση URL:
Source: /product-a/(.*)
Destination: https://newdomain.com/product-a/
Αυτό είναι αρκετά καλό, αλλά εξακολουθούν να υπάρχουν μερικά προβλήματα. Πρώτον, θα ταιριάζει με οποιαδήποτε διεύθυνση URL / προϊόν-α / σε αυτό και ανακατευθύνετέ τα όλα στον ίδιο προορισμό. Έτσι όλες αυτές οι διαδρομές θα ανακατευθύνουν στον ίδιο προορισμό.
https://existingdomain.com/product-a/
https://existingdomain.com/help/product-a/
https://existingdomain.com/category/parent/product-a/
Ωστόσο, οι κανονικές εκφράσεις είναι ένα όμορφο εργαλείο. Αρχικά, μπορείτε να ενημερώσετε την πηγή σας για να βεβαιωθείτε ότι αναγνωρίζεται το επίπεδο φακέλου.
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/
Αυτό θα διασφαλίσει ότι μόνο το αρχικό επίπεδο φακέλου θα ανακατευθύνει σωστά. Τώρα για το δεύτερο πρόβλημα… πώς θα λάβετε τις πληροφορίες ερωτηματολογίου που συλλαμβάνονται στον νέο ιστότοπο εάν η ανακατεύθυνση δεν τις περιλαμβάνει; Λοιπόν, οι κανονικές εκφράσεις έχουν επίσης μια εξαιρετική λύση για αυτό:
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/$1
Οι πληροφορίες μπαλαντέρ συλλαμβάνονται και επισυνάπτονται στον προορισμό χρησιμοποιώντας τη μεταβλητή. Ετσι…
https://existingdomain.com/product-a/?utm_source=newsletter
Θα ανακατευθύνει σωστά σε:
https://newdomain.com/product-a/?utm_source=newsletter
Λάβετε υπόψη ότι το μπαλαντέρ θα επιτρέψει την ανακατεύθυνση κάθε υποφακέλου, οπότε θα ενεργοποιηθεί επίσης:
https://existingdomain.com/product-a/features/?utm_source=newsletter
Θα ανακατευθύνει σε:
https://newdomain.com/product-a/features/?utm_source=newsletter
Φυσικά, οι κανονικές εκφράσεις μπορούν να γίνουν πολύ πιο περίπλοκες από αυτό… αλλά ήθελα απλώς να δώσω ένα γρήγορο δείγμα για το πώς να ρυθμίσετε μια ανακατεύθυνση μπαλαντέρ regex που μεταφέρει τα πάντα καθαρά σε έναν νέο τομέα!