301 ανακατεύθυνση σε άλλη σελίδα. Ανακατεύθυνση από διαφορετικούς τομείς και υποτομείς. Ανακατεύθυνση αιτημάτων χωρίς www στο c-www

Σε ορισμένες περιπτώσεις, η χρήση μιας ανακατεύθυνσης 301 είναι πολύ σημαντική. Αλλά είναι σημαντικό να γνωρίζετε πώς να το εφαρμόσετε σωστά για κάθε μεμονωμένη περίπτωση. Επομένως, εδώ είναι μια επιλογή απαντήσεων σε όλες τις κύριες ερωτήσεις που σχετίζονται με τη ρύθμισή του.

Τι είναι η ανακατεύθυνση 301 και γιατί χρειάζεται;

Η ανακατεύθυνση 301 έχει σχεδιαστεί για να βοηθά τους webmasters να ανακατευθύνουν τους χρήστες από μια διεύθυνση URL, η οποία αρχικά βρισκόταν στη γραμμή διευθύνσεων του προγράμματος περιήγησης, σε μια εντελώς διαφορετική διεύθυνση. Από την άποψη του SEO, το 301 Moved Permanently είναι μια μόνιμη ανακατεύθυνση που βοηθά στη μετακίνηση έως και 99% του χυμού συνδέσμου σε μια νέα διεύθυνση URL και "επισήμανση" της παλιάς ως απαρχαιωμένης. Δηλαδή, χάρη σε αυτό, θα είναι δυνατή η διατήρηση θέσεων στις μηχανές αναζήτησης και εάν απλώς αλλάξετε τη διεύθυνση URL χωρίς να κάνετε ανακατεύθυνση, τότε για το Yandex και το Google θα είναι μια νέα σελίδα που θα ταξινομηθεί χωρίς σύνδεση με το προηγούμενη ιστορία.

Υπάρχουν πολλές επιλογές όταν πρέπει να χρησιμοποιήσετε αυτήν την ανακατεύθυνση:

  • κατά τη συγχώνευση τομέων.
  • για να μετακινήσετε τον ιστότοπο σε μια νέα διεύθυνση, για παράδειγμα, σε περίπτωση μείωσης της επισκεψιμότητας λόγω του πόρου σας που εμπίπτει στα φίλτρα μηχανών αναζήτησης. Μια ανακατεύθυνση 301 θα εμποδίσει όσους έχουν προσθέσει σελιδοδείκτη στον ιστότοπό σας να τον χάσουν από τα μάτια τους.
  • για αύξηση TCI, PR, επισκεψιμότητας από το PS στον κύριο ιστότοπο. Σε αυτήν την περίπτωση, θα χρειαστεί να αγοράσετε έναν τομέα που έχει καλή απόδοση και να ρυθμίσετε μια ανακατεύθυνση στον πόρο που χρειάζεται να βελτιώσει αυτές τις παραμέτρους.
  • όταν αλλάζετε τη διεύθυνση μιας συγκεκριμένης σελίδας για να διατηρήσετε υψηλές θέσεις στο PS (για παράδειγμα, αυτό μπορεί να είναι σχετικό όταν μετακινείτε έναν ιστότοπο από ένα CMS σε άλλο).
  • και τα λοιπά.

Πώς να κάνετε μια ανακατεύθυνση 301;

Υπάρχουν πολλές επιλογές για την επίλυση του προβλήματος της ρύθμισης μιας ανακατεύθυνσης 301. Ποιο θα χρησιμοποιήσετε εξαρτάται από τις τεχνικές δυνατότητες της φιλοξενίας. Αλλά οι σύγχρονοι οικοδεσπότες συνήθως δεν έχουν τέτοια προβλήματα, και εάν έχουν, επιλύονται γρήγορα μέσω τεχνικής υποστήριξης. Ακολουθούν μερικές βασικές απλές καταστάσεις ανακατεύθυνσης που μπορεί να συναντήσετε. Για να το κάνετε αυτό, πρέπει να δημιουργήσετε ένα αρχείο με το όνομα .htaccess (αν δεν υπάρχει) και στη συνέχεια να προσθέσετε τον απαιτούμενο κώδικα ανακατεύθυνσης σε αυτό. Εάν δεν μπορείτε απλώς να το δημιουργήσετε στην επιφάνεια εργασίας, δοκιμάστε να το κάνετε μέσω του προγράμματος Total Commander ή του FileZilla μετονομάζοντας απλώς οποιοδήποτε περιττό έγγραφο.

Επομένως, πρέπει να ανακατευθύνετε τους χρήστες σε άλλο ιστότοπο. Θα μοιάζει με αυτό:

Ανακατεύθυνση 301 / http://site.ru

Και αν πρέπει να οργανώσετε μια ανακατεύθυνση από σελίδα σε σελίδα του ιστότοπου, τότε θα χρειαστείτε τον ακόλουθο κώδικα:

Ανακατεύθυνση 301 /old-page.html http://new-domain.ru/new-page.html

Ανακατεύθυνση Μόνιμη /παλιά σελίδα. html http://new-domain.ru/new-page.html

Πώς να συγχωνεύσω έναν τομέα με το www με την επιλογή χωρίς;

Επί του παρόντος, η χρήση του www σε ονόματα ιστοτόπων θεωρείται ξεπερασμένη. Ωστόσο, αυτή η επιλογή εμφανίζεται αρκετά συχνά. Εάν αυτή δεν είναι η αγορά ενός έτοιμου ιστότοπου, τότε κατά τη δημιουργία ενός νέου πόρου είναι καλύτερο να αναφέρετε παντού χωρίς www. Κατά τη συγχώνευση τομέων, συνδυάζονται όλες οι πιο σημαντικές παράμετροί τους, όπως TCI, PR και επισκέπτες. Επιπλέον, αυτό θα βοηθήσει στη βελτιστοποίηση του πόρου και στην αποφυγή μιας κατάστασης όπου η αντανάκλαση PS ενός ιστότοπου με www εκλαμβάνεται εσφαλμένα ως "απατεώνας" με "κλεμμένο" περιεχόμενο.

Ο κώδικας για τη συγχώνευση ενός τομέα με χρήση www σε έναν τομέα χωρίς www μοιάζει με αυτό:

RewriteEngine στο RewriteCond %(HTTP_HOST) ^www.site.ru$ RewriteRule ^(.*)$ http://site.ru/$1

Σε αυτήν την περίπτωση, η τιμή ενεργοποίησης/απενεργοποίησης RewriteEngine είναι μια εξειδικευμένη οδηγία που χρησιμεύει για τη σύνδεση ή τον τερματισμό της πρόσβασης στον κώδικα του ίδιου του αρχείου. Και η πρόσβαση πραγματοποιείται μέσω της ενότητας mod_rewrite. Το RewriteCond είναι μια οδηγία που χρησιμοποιείται για τη δημιουργία συνθηκών σύμφωνα με κανόνες μετατροπής. Και το RewriteRule είναι μια συνταγή υπεύθυνη για τους μετασχηματισμούς που πραγματοποιούνται, σε μια συγκεκριμένη κατάσταση - μια ανακατεύθυνση 301.

301 ανακατεύθυνση κατά τη μετάβαση σε HTTPS

Η τρέχουσα τάση είναι η μεταφορά ιστοσελίδων στο ασφαλές πρωτόκολλο HTTPS. Ταυτόχρονα, η ρύθμιση ανακατευθύνσεων από σελίδες από HTTP σε HTTPS είναι ένα βασικό βήμα. Αυτό γίνεται ως εξής στο αρχείο .htaccess.

RewriteCond %(SERVER_PORT) !^443$ RewriteRule ^(.*)$ https://site.ru/$1

Σημειώσεις και λάθη

Τι μπορεί να συναντήσετε και ποιες λεπτομέρειες δεν πρέπει να ξεχάσετε κατά τη ρύθμιση μιας ανακατεύθυνσης 301:

  • Η αυστηρή τήρηση της ακολουθίας κανόνων ανακατεύθυνσης είναι το πρώτο πράγμα που πρέπει να θυμάστε. Επομένως, εάν ένας συγκεκριμένος κανόνας δεν τηρηθεί, αξίζει να ελέγξετε ξανά αν υπάρχουν άλλες ανακατευθύνσεις που τον έρχονται σε αντίθεση.
  • Οι ανακατευθύνσεις 301 έχουν πολλά χαρακτηριστικά και πολύπλοκη σύνταξη, τα οποία είναι δύσκολο να τα έχετε πάντα υπόψη σας, επομένως τα επίσημα εγχειρίδια θα σας βοηθήσουν. Εκτός από αυτά, η λογική και η διαδοχική απαρίθμηση πολλών επιλογών μπορούν να βοηθήσουν.
  • Ο έλεγχος της λειτουργικότητας του ιστότοπου και όλων των εφαρμοσμένων κανόνων ανακατεύθυνσης αποτελεί προϋπόθεση για την επιτυχή ολοκλήρωση της εγκατάστασης του. Αφιερώστε χρόνο για να μεταβείτε στις ενότητες και τις σελίδες του πόρου, όχι μόνο στην κύρια σελίδα, προκειμένου να εξαλείψετε τυχόν προβλήματα στο μέλλον. Εάν γίνουν σφάλματα στη σύνταξη των οδηγιών, ολόκληρος ο ιστότοπος μπορεί κάλλιστα να σταματήσει να λειτουργεί.

Υπάρχουν επίσης αρκετές περιπτώσεις όπου η χρήση ανακατεύθυνσης 301 θα ήταν λάθος. Επομένως, είναι καλύτερο να μην χρησιμοποιήσετε μια ανακατεύθυνση πολλαπλών περασμάτων εάν η εφαρμογή της θα διαρκέσει πολύ. Ή, για παράδειγμα, εάν υπάρχει περιεχόμενο που είναι διπλότυπο και για διάφορους λόγους πρέπει να αποθηκεύσετε και τις δύο σελίδες για τους χρήστες. Εάν η σελίδα και το περιεχόμενό της δεν είναι σχετικά, τότε θα πρέπει επίσης να αρνηθείτε την ανακατεύθυνση. Ένα σφάλμα θα ήταν η ρύθμιση μιας ανακατεύθυνσης σε μια σελίδα που δεν λειτουργεί σωστά (η σελίδα θα πρέπει να έχει απόκριση διακομιστή 200 ή 404). Και τέλος, η ανακατεύθυνση του αρχείου robots.txt θα ήταν εσφαλμένη.

Άλλοι τύποι ανακατευθύνσεων

Οι έμπειροι webmasters, εκτός από την πιο δημοφιλή ανακατεύθυνση 301, χρησιμοποιούν και αρκετές άλλες: από 300 έως 307. Για παράδειγμα, το 302 και το 307 είναι μια προσωρινή ανακατεύθυνση, το 305 είναι πρόσβαση αποκλειστικά μέσω διακομιστή μεσολάβησης, κ.λπ. Το Meta Refresh μπορεί επίσης να ονομαστεί ένας αρκετά δημοφιλής τύπος ανακατεύθυνσης. Δεν εκτελείται σε επίπεδο διακομιστή, αλλά σε επίπεδο σελίδας. Ωστόσο, οι ειδικοί συνιστούν τη χρήση μιας τέτοιας ανακατεύθυνσης όσο πιο σπάνια γίνεται. Αυτό δικαιολογείται από το γεγονός ότι συχνά καταφεύγουν σε αυτούς πωλητές και αποστολείς ανεπιθύμητης αλληλογραφίας. Επιπλέον, η χρήση αυτής της ανακατεύθυνσης πρακτικά δεν παρέχει την ευκαιρία μεταφοράς χυμού συνδέσμου.

Γεια σε όλους!

Το θέμα του παρελθόντος είναι . Μίλησα εν συντομία για τα πιο σημαντικά σημεία του και ανέφερα αρκετές λειτουργίες που εκτελεί αυτό το ίδιο το αρχείο. Μία από αυτές τις λειτουργίες είναι η αυτόματη ανακατεύθυνση ενός επισκέπτη από το ένα URL στο άλλο, που ονομάζεται επίσης ανακατεύθυνση 301.

Τι είναι η ανακατεύθυνση 301;

Όπως είπα ήδη, μια ανακατεύθυνση 301 είναι μια αυτόματη ανακατεύθυνση που σας επιτρέπει να ανακατευθύνετε έναν επισκέπτη ή ένα ρομπότ αναζήτησης από τη μια σελίδα ενός ιστότοπου σε μια άλλη ή από έναν τομέα σε έναν άλλο. Με όλα αυτά, όλα τα λεγόμενα βάρη (page weight) μεταφέρονται στο URL στο οποίο γίνεται η ανακατεύθυνση.

Έτσι, έχουμε μια πραγματική σωτηρία όταν μετακινούμε έναν ιστότοπο σε άλλο τομέα και άλλες καταστάσεις, τις οποίες θα συζητήσουμε παρακάτω. Σε αυτή την περίπτωση, δεν θα χάσουμε σχεδόν τίποτα.

Παράδειγμα. Προηγουμένως, το ιστολόγιο Context-UP βρισκόταν στη διεύθυνση URL: http://blog.site (μεταξύ σας, πιθανώς υπάρχουν και αυτοί που είδαν αυτές τις φορές), τότε ήθελα ο ιστότοπος να είναι σε τομέα δεύτερου επιπέδου, δηλαδή . Για να εκπληρώσω την επιθυμία μου, έπρεπε να μεταφέρω όλα τα περιεχόμενα του ιστολογίου σε έναν άλλο κατάλογο (φάκελο) στη φιλοξενία και, στη συνέχεια, στον πίνακα, να καθορίσω έναν νέο τομέα, ώστε τα ρομπότ να αρχίσουν να ευρετηριάζουν τη νέα διεύθυνση ιστολογίου. Μόνο μετά από όλα αυτά, έφτιαξα μια ανακατεύθυνση στο..

Τώρα ελπίζω να καταλάβατε τι είναι η ανακατεύθυνση 301.

Πώς να ρυθμίσετε την ανακατεύθυνση 301 μέσω htaccess;

Υπάρχουν διάφοροι τρόποι για την υλοποίηση μιας ανακατεύθυνσης, αλλά ο ασφαλέστερος και ευκολότερος είναι μια ανακατεύθυνση 301 στο .htaccess.

Έτσι, για να λειτουργήσει το αρχείο και η ανακατεύθυνση, αντίστοιχα, είναι απαραίτητο να ενεργοποιήσετε τα λεγόμενα modules. Για το σκοπό μας, μπορούμε να χρησιμοποιήσουμε δύο:

  1. Mod_rewrite;
  2. Mod_alias.

Η πρώτη επιλογή είναι η πιο προτιμότερη, καθώς όταν τη χρησιμοποιείτε δεν θα χρειαστεί να καταχωρήσετε κάθε σελίδα URL ξεχωριστά, αλλά απλώς να χρησιμοποιήσετε ειδικές εντολές (είναι παρακάτω), χάρη στις οποίες θα γίνει η ανακατεύθυνση.

Εμείς, δηλαδή οι απλοί πελάτες παρόχων φιλοξενίας, μπορούμε να ενεργοποιήσουμε αυτήν την ενότητα για τον κατάλογο του ιστότοπού μας μόνο μέσω του αρχείου .htaccess. Αυτό γίνεται απλά, απλώς εισάγετε τη γραμμή στο αρχείο που αναφέρθηκε προηγουμένως:

RewriteEngine On

Αυτή η ενότητα θα λειτουργήσει μόνο εάν είναι συνδεδεμένη στον διακομιστή ιστού Apache. Επομένως, ελέγξτε αυτό το σημείο με τους διαχειριστές.

Ως μέρος αυτού του μαθήματος, θέλω να εξετάσω διάφορες καταστάσεις στις οποίες θα χρειαστεί να ρυθμίσουμε μια ανακατεύθυνση 301:

  1. Εάν μετακινείστε από έναν τομέα σε άλλον.
  2. Εάν ο ιστότοπός σας είναι προσβάσιμος με www και χωρίς www.
  3. Από το πρωτόκολλο http στο https.
  4. Από τη μια σελίδα στην άλλη.
  5. Από το αρχείο ευρετηρίου index.html/php στην κύρια σελίδα.

Πάμε με τη σειρά.

Μετακίνηση σε άλλο τομέα

Εάν αποφασίσετε να μετακινηθείτε σε άλλο τομέα, τότε πρέπει να γράψετε την ακόλουθη εντολή στο αρχείο πρόσθετης διαμόρφωσης .htaccess:

RewriteEngine σε RewriteCond %(HTTP_HOST) old-domen.ru RewriteRule (.*) http: //new-domen.ru/$1

301 ανακατεύθυνση από www σε μη www και αντίστροφα

Ένα ρομπότ αναζήτησης είναι πολύπλοκο πράγμα, επομένως όταν εργάζεστε με έναν ιστότοπο, ένας webmaster πρέπει να λαμβάνει υπόψη πολλές αποχρώσεις. Για παράδειγμα, για μια μηχανή αναζήτησης, ένας ιστότοπος που είναι προσβάσιμος στη διεύθυνση www (www.site.ru) και χωρίς τριπλό (site.ru) χωρίζεται σε δύο εντελώς πανομοιότυπους πόρους ιστού που αντιγράφουν ο ένας τον άλλον.

Για το λόγο αυτό, κάθε ιστότοπος θα πρέπει να είναι προσβάσιμος μόνο σε μία διεύθυνση: είτε με www είτε χωρίς. Διαφορετικά, η θέση του ιστότοπου δεν θα αυξηθεί.

Ανακατεύθυνση από το www.site.ru στο site.ru:

Ανακατεύθυνση από το site.ru στο www.site.ru:

RewriteEngine On RewriteCond %(HTTP_HOST) ^www\.(.*) RewriteRule ^(.*)$ http://%1/$1

Από το πρωτόκολλο http στο https

Χρησιμοποιήστε αυτόν τον κωδικό για να ανακατευθύνετε στο ασφαλές πρωτόκολλο https:

RewriteCond %(HTTPS) off RewriteRule ^(.*)$ https: //%(HTTP_HOST)%(REQUEST_URI)

Από τη μια σελίδα ιστότοπου στην άλλη

Πολύ συχνά συμβαίνει να χρειάζεται να ανακατευθύνετε τους επισκέπτες του ιστότοπου και τα ρομπότ αναζήτησης από τη μια σελίδα στην άλλη. Σε αυτήν την περίπτωση, αρκεί να γράψετε τον ακόλουθο κώδικα στο htaccess:

Ανακατεύθυνση 301 /page1..html

Κάποια στιγμή, χρειάστηκε να κάνω μια ανακατεύθυνση 301 από μια σελίδα που δημιουργήθηκε από το WordPress CMS στην κύρια σελίδα, καθώς η πρώτη αντιγράφει αυτό που υπήρχε στη δεύτερη.

Από index.html ή index.php στη ρίζα (κάθετο)

Αρχικά, σχεδόν σε όλους τους ιστότοπους, η κύρια σελίδα είναι διαθέσιμη σε δύο διευθύνσεις URL: http://site.ru/index.php και http://site.ru/. Αυτό δεν είναι σωστό, καθώς έχει ως αποτέλεσμα την αντιγραφή του περιεχομένου της κύριας σελίδας και οι μηχανές αναζήτησης θα αρχίσουν να απαισιοδοξούν τον ιστότοπο στα αποτελέσματα αναζήτησης (σκόπιμα χαμηλώνουν τον ιστότοπο προς τα κάτω).

Για να μην συμβεί αυτό, πρέπει να γράψετε τα εξής:

Εάν θέλετε να κάνετε ανακατεύθυνση από το index.html

RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http: //site/

Αν θέλετε να κάνετε ανακατεύθυνση με index.php

RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http: //site/

Χρησιμοποιήστε αυτό το υλικό ως φύλλο εξαπάτησης σε περίπτωση που το χρειάζεστε. Απλά πρέπει να αντιγράψετε τον απαιτούμενο κώδικα και να τον επικολλήσετε στο .htaccess.

Λοιπόν, αυτό είναι όλο, αγαπητοί φίλοι!

Μην ξεχάσετε να εγγραφείτε σε ενημερώσεις ιστολογίου και να μοιραστείτε συνδέσμους για μαθήματα στα κοινωνικά δίκτυα.

Τα λέμε σύντομα!

Προηγούμενο άρθρο
Επόμενο άρθρο

Το αρχείο διαμόρφωσης .htaccess είναι μια ρύθμιση παραμέτρων για διακομιστές ιστού Apache. Η πλειοψηφία φιλοξενίαεργαστείτε μέσω αυτού του διακομιστή, επομένως κάθε ιστότοπος έχει αυτό το αρχείο. Οι webmasters μπορούν να ελέγχουν εν μέρει τη λειτουργία του κάνοντας τις δικές τους αλλαγές. Σε αυτό το άρθρο θα δούμε οδηγίες και κανόνες που μπορούν να αλλάξουν στη λειτουργία του διακομιστή.

Το πιο σημαντικό αρχείο .htaccess βρίσκεται στη ρίζα του ιστότοπου:

Οι ενέργειές του εφαρμόζονται στον τρέχοντα κατάλογο και σε όλους τους υποκαταλόγους. Εκείνοι. Οι ιδιοκτήτες ιστοτόπων έχουν την ευκαιρία να επηρεάσουν μόνο την εργασία του έργου τους χωρίς να παρεμβαίνουν στη δουλειά ολόκληρου του διακομιστή. Εάν αυτό το αρχείο λείπει, μπορεί να δημιουργηθεί χρησιμοποιώντας οποιοδήποτε σημειωματάριο. Το κύριο πράγμα είναι ότι το όνομα του αρχείου πρέπει να είναι ".htaccess" - χωρίς μορφές .txt, .doc κ.λπ.

Μέσω του αρχείου .htaccess πιο συχνά διαμορφώστε τις ανακατευθύνσεις 301σε επίπεδο διακομιστή, γεγονός που επιταχύνει πολύ τη διαδικασία μετάβασης σε νέα σελίδα, επειδή δεν χρειάζεται να φορτώσετε μια ενδιάμεση σελίδα. Καθορίζει επίσης ποιο αρχείο επεξεργάζεται. Σφάλμα 404.

Παρακάτω θα δούμε όλες τις κοινές επιλογές για ανακατευθύνσεις μέσω .htaccess και πρώτα θα εξοικειωθούμε με τις επιλογές και τους κανόνες.

Για να μπορέσετε να εργαστείτε με ανακατευθύνσεις, πρέπει να ενεργοποιήσετε τη λειτουργική μονάδα ReWriteEngine. Για να το κάνετε αυτό, πρέπει να γράψετε δύο γραμμές κώδικα (κατά προτίμηση στην κορυφή του αρχείου .htaccess):

Επιλογές +FollowSymLinks RewriteEngine On

Τοποθετήστε αυτές τις γραμμές στην κορυφή του αρχείου .htaccess για να μπορέσετε να εργαστείτε με τις οδηγίες της ενότητας mod_write.

Επίσης, οι λειτουργικές μονάδες mod_alias πρέπει να είναι ενεργοποιημένες στη φιλοξενία (για υποστήριξη Redirect, RedirectPermanent και RedirectMatch).

1. Κανόνες Redirect, RewriteRule και RewriteCond

1.1. Οδηγία ανακατεύθυνσης

Σύνταξη ανακατεύθυνσης:

Ανακατεύθυνση /από http://where_full_address

Η ανακατεύθυνση ορίζει μια άμεση ανακατεύθυνση από τη μια σελίδα στην άλλη.

Ο κωδικός ανακατεύθυνσης είναι γραμμένος σε κατάσταση. Είναι μια προαιρετική παράμετρος. Τις περισσότερες φορές γράφουν 301, το οποίο σηματοδοτεί μια μόνιμη αλλαγή της διεύθυνσης της σελίδας.

Είναι σημαντικό η σελίδα "από" να γράφεται σε μορφή χωρίς να αναφέρεται η πλήρης διεύθυνση του ιστότοπου, αλλά να υποδεικνύεται η πλήρης σχετική διεύθυνση URLξεκινώντας με κάθετο "/" (δηλαδή από τη ρίζα του ιστότοπου). Η σελίδα όπου πηγαίνει η ανακατεύθυνση πρέπει να γραφτεί πλήρως, π.χ. το απόλυτο URL της σελίδας (δηλαδή με τον τίτλο τομέαΚαι πρωτόκολλο http ή https).

Για παράδειγμα

Ανακατεύθυνση 301 /oldpage.php http://site/newpage.php

Μπορείτε επίσης να το γράψετε διαφορετικά

RedirectPermanent 301 /oldpage.php http://site/newpage.php ή Redirect Permanent 301 /oldpage.php http://site/newpage.php

1.2. Οδηγία RewriteRule

Η οδηγία RewriteRule ορίζει τους κανόνες μετάβασης. Η σύνταξη έχει ως εξής:

RewriteRule Pattern Substitute [κωδικοί]
  • Όταν συμβαίνει μια εξωτερική ανακατεύθυνση, η διεύθυνση URL στη γραμμή του προγράμματος περιήγησης αλλάζει - " "
  • Όταν είναι εσωτερικό - δεν αλλάζει το URL στη γραμμή του προγράμματος περιήγησης - " " ή "[L] "

1.3. Οδηγία RewriteCond

Η οδηγία RewriteCond ορίζει τις συνθήκες υπό τις οποίες εκτελούνται οι κανόνες του RewriteRule.

RewriteCond Compare_StringΚατάσταση

Για παράδειγμα, αυτοί οι όροι θα μπορούσαν να είναι το πρόγραμμα περιήγησης του χρήστη, διεύθυνση IP, τίτλος κ.λπ.

1.4. Οδηγία RedirectMatch

Η οδηγία RedirectMatch είναι παρόμοια με την Redirect, με τη μόνη διαφορά ότι σας επιτρέπει να γράφετε κανονικές εκφράσεις.

Ανακατεύθυνση Αντιστοίχιση Από Προς Προς

2. Παραδείγματα 301 ανακατευθύνσεων σε .htaccess

Έχουμε ήδη εξετάσει πολλά παραδείγματα με ανακατεύθυνση .htaccess στα άρθρα:

Εδώ θα προσθέσουμε επιλογές για ανακατευθύνσεις που δεν υπήρχαν ακόμα.

2.1. Ανακατεύθυνση από τη μια σελίδα στην άλλη

Ανακατεύθυνση από site.ru/cat/oldpage στο site.ru/newpage.html

RewriteRule ^cat/oldpage.* /newpage.html

Ή η δεύτερη επιλογή:

Ανακατεύθυνση 301 /cat/oldpage http://www.site.com/newpage.php

2.2. Ανακατεύθυνση από όλα τα αρχεία .htm σε .html

RewriteCond %(REQUEST_FILENAME) !-f RewriteRule ^(.*)\.htm$1.html

Ή η δεύτερη επιλογή:

RewriteRule ^(.*)\.htm$1.html

2.3. Ανακατευθύνετε ολόκληρο τον κατάλογο σε άλλη σελίδα

Οποιαδήποτε σελίδα στον κατάλογο /old/ και στους υποκαταλόγους θα ανακατευθυνθεί στο /new.php

RewriteRule ^old(.*)$ /new.php

2.4. Αφαίρεση επιπλέον κάθετου από μια διεύθυνση URL

Για παράδειγμα, η σελίδα /catalog///stranica.html είναι προσβάσιμη και ανοίγει. Για να αποφύγετε αυτήν την κατάσταση και να μην δημιουργήσετε άπειρο αριθμό διπλότυπων, θα πρέπει να γράψετε την ακόλουθη ανακατεύθυνση

RewriteCond %(REQUEST_URI) ^(.*)//(.*)$ RewriteRule . %1/% 2

2.5. Ξαναγράψτε χωρίς ανακατεύθυνση

Μπορείτε να φορτώσετε μια διαφορετική σελίδα χωρίς να αλλάξετε τη διεύθυνση URL της σελίδας. Για παράδειγμα, ας φορτώσουμε τη σελίδα /news.html και στη γραμμή διευθύνσεων θα εμφανιστεί η διεύθυνση /news/happy

RewriteRule ^news/happy.* /news.html [L]

2.6. Προσθήκη τελικής κάθετου στο τέλος της διεύθυνσης της αρχικής σελίδας

Για παράδειγμα, πολλοί διακομιστές λειτουργούν με τέτοιο τρόπο ώστε η τελευταία κάθετο να μην γράφεται στη διεύθυνση URL. Για παράδειγμα, http://site.ru. Ο παρακάτω κώδικας λύνει αυτό το πρόβλημα: ο ιστότοπος θα ανοίξει στη διεύθυνση http://site.ru/

RewriteCond %(REQUEST_URI) /+[^\.]+$ RewriteRule ^(.+[^/])$ %(REQUEST_URI)/

2.7. Αφαίρεση καταλόγου καταλόγου από τη διεύθυνση URL

Για παράδειγμα, για ανακατεύθυνση από μια σελίδα site.com/directoriya/stranica.htmlστο site.com/stranica.html πρέπει να εισαγάγετε τα εξής:

RewriteRule ^directoriya/(.+)$ http://site.com/$1

Ή η δεύτερη επιλογή:

RewriteCond %(DOCUMENT_ROOT)/directoriya/$1-f RewriteRule ^(.*)$ Directoriya/$1

2.8. Ανακατεύθυνση παραμέτρων GET

Για παράδειγμα, ανακατεύθυνση από τη σελίδα /?act=page&id=2 στο /page-2/

RewriteCond %(QUERY_STRING) act=σελίδα RewriteCond %(QUERY_STRING) id=(\d+) RewriteRule .* /page/%1/? ]

2.9. Ανακατεύθυνση στην έκδοση για κινητά του ιστότοπου m.site.ru

Σε αυτό το παράδειγμα, το γεγονός ότι ο χρήστης άνοιξε τον ιστότοπο από μια κινητή συσκευή (HTTP_USER_AGENT) ελέγχεται πρώτα και, στη συνέχεια, η διεύθυνση του ιστότοπου αντικαθίσταται με m.URL

RewriteCond %(HTTP_HOST) ^(.*)$ RewriteCond %(HTTP_USER_AGENT) (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|ασύρματο|nokia|hand|mobi|τηλέφωνο|cdm|upb| ήχος|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java |pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) RewriteRule ^$ http://m.%1

2.10. Ανακατεύθυνση από υποτομέα

Για παράδειγμα, ας κάνουμε ανακατεύθυνση από οποιαδήποτε σελίδα υποτομέα subdomain.site.ru στο κύριο τομέα site.ru

RewriteCond %(HTTP_HOST) ^poddomen.site.ru$ RewriteRule ^(.*)$ http://site.ru%(REQUEST_URI)

3.Άλλα παραδείγματα με htaccess

3.1. Αρνηθείτε τη διεύθυνση IP και το πρόγραμμα περιήγησης

Θα απαγορεύσουμε το άνοιγμα του ιστότοπου για έναν χρήστη που χρησιμοποιεί πρόγραμμα περιήγησης IE με διεύθυνση IP 172.111.222.55

RewriteCond %(HTTP_USER_AGENT) MSIE RewriteCond %(REMOTE_ADDR) ^172\.111\.222\.55$ RewriteRule ^.*$ - [F]

3.2. Απόρριψη συγκεκριμένου αρχείου

Ας απενεργοποιήσουμε το αρχείο disable_file.html για όλους:

αρνηθεί από όλους

3.3. Επιτρέψτε την πρόσβαση από μία IP

Η πρόσβαση θα επιτρέπεται μόνο από μία διεύθυνση IP 172.111.222.55

άρνηση παραγγελίας, αποδοχή άρνησης από όλα τα επιτρεπόμενα από 172.111.222.55

3.4. Απαγόρευση πρόσβασης από διαφορετικές IP

Απαγόρευση πρόσβασης στον ιστότοπο από πολλές διευθύνσεις IP 172.112.222.55, 172.113.222.55, 172.114.*.*

άρνηση παραγγελίας, αποδοχή άρνησης από όλες τις αρνήσεις από 172.112.222.55 άρνηση από 172.113.222.55 άρνηση 172.114.*.*

3.5. Ανακατεύθυνση URL από μεγάλους χαρακτήρες σε μικρούς

Όλα τα κεφαλαία γράμματα στη διεύθυνση URL θα μετατραπούν σε μικρά γράμματα.

RewriteRule - RewriteRule! - RewriteRule ^([^A]*)A(.*)$1a$2 RewriteRule ^([^B]*)B(.*)$1b$2 RewriteRule ^([^C]*)C(.* )$1c$2 RewriteRule ^([^D]*)D(.*)$1d$2 RewriteRule ^([^E]*)E(.*)$1e$2 RewriteRule ^([^F]*) F(.*)$ $1f$2 RewriteRule ^([^G]*)G(.*)$ $1g$2 RewriteRule ^([^H]*)H(.*)$1h$2 RewriteRule ^([^ I]*)I(.*)$1i$2 RewriteRule ^([^J]*)J(.*)$1j$2 RewriteRule ^([^K]*)K(.*)$1k$2 RewriteRule ^([^L]*)L(.*)$1l$2 RewriteRule ^([^M]*)M(.*)$1m$2 RewriteRule ^([^N]*)N(.*)$ $1n$2 RewriteRule ^([^O]*)O(.*)$ $1o$2 RewriteRule ^([^P]*)P(.*)$1p$2 RewriteRule ^([^Q]*)Q( .*)$ $1q$2 RewriteRule ^([^R]*)R(.*)$ $1r$2 RewriteRule ^([^S]*)S(.*)$1s$2 RewriteRule ^([^T] *)T(.*)$1t$2 RewriteRule ^([^U]*)U(.*)$1u$2 RewriteRule ^([^V]*)V(.*)$1v$2 RewriteRule ^( [^W]*)W(.*)$1w$2 RewriteRule ^([^X]*)X(.*)$1x$2 RewriteRule ^([^Y]*)Y(.*)$1ετ. $2 RewriteRule ^([^Z]*)Z(.*)$1z$2 RewriteRule - [N] RewriteCond %(ENV:HASCAPS) TRUE RewriteRule ^/?(.*) /$1

Μια ανακατεύθυνση 301 χρησιμοποιείται κυρίως όταν μια σελίδα ή μια ομάδα σελίδων έχει αλλάξει τη διεύθυνσή της. Αυτό συμβαίνει σε περιπτώσεις που αλλάζει η δομή του ιστότοπου, όταν αλλάζει η σελίδα διαμορφωτικής διεύθυνσης URL κ.λπ. Πολλοί ιδιοκτήτες τοποθεσιών δεν το σκέφτονται αυτό και ως εκ τούτου προκύπτουν διπλότυπες σελίδες, οι οποίες μπορεί να οδηγήσουν σε απώλεια θέσεων ή επικάλυψη.

εκτός Η ανακατεύθυνση 301 χρησιμοποιείται για τη συγκόλληση καθρεφτών(για παράδειγμα, ένας τομέας με www και χωρίς www). Αυτό μπορεί να βοηθήσει στη βελτίωση των παραμέτρων TCI και PR, καθώς για τις μηχανές αναζήτησης η διεύθυνση του ιστότοπου με "www" και χωρίς "www" είναι διαφορετικές διευθύνσεις URL. Εάν ο ιδιοκτήτης αποφασίσει να αλλάξει τη διεύθυνση του έργου λόγω αλλαγής σε αγαθά και υπηρεσίες που παρείχε προηγουμένως ή αποφασίσει να καταχωρίσει ένα πιο σύντομο και πιο όμορφο domain, τότε είναι πολύ σημαντικό όταν οι επισκέπτες έχουν πρόσβαση στη διεύθυνση του παλιού τομέα, καταλήγουν στην ίδια σελίδα με πριν, αλλά μόνο σε αυτήν που βρίσκεται ήδη στον νέο τομέα.

Ανακατεύθυνση 301 σε .htaccess

Η ανακατεύθυνση 301 στο htaccess είναι ο ευκολότερος και πιο δημοφιλής τρόπος εγκατάστασης ανακατευθύνσεων. Ένα από τα πλεονεκτήματα αυτής της μεθόδου είναι το γεγονός ότι ενεργοποιείται στον διακομιστή πριν από την εκκίνηση διαφόρων σεναρίων πόρων και δεν δημιουργεί πρόσθετο φορτίο. Ακολουθούν μερικά από τα πιο συνηθισμένα παραδείγματα (αντικαταστήστε τον "ιστότοπο" με τη διεύθυνση του ιστότοπού σας):

301 ανακατεύθυνση σε .htaccess για έναν τομέα με www. σε έναν τομέα χωρίς www.

Επιλογές +FollowSymLinks
RewriteEngine On
RewriteCond %(HTTP_HOST) ^www\.raskruty\.ru$
RewriteRule ^(.*)$ http://site/$1

Αντίστροφη ανακατεύθυνση από έναν τομέα χωρίς www. σε έναν τομέα από το www.

Επιλογές +FollowSymLinks
RewriteEngine On
RewriteCond %(HTTP_HOST) ^raskruty\.ru$
RewriteRule ^(.*)$ http://www.site/$1

Ανακατεύθυνση της διεύθυνσης 301 από το /index.php στη ρίζα του ιστότοπου /

RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site/

Ένα ακόμη παράδειγμα:

RewriteCond %(THE_REQUEST) ^(GET|HEAD)\ /index\.php
RewriteRule.*/

Το ίδιο μπορεί να γίνει για το /index.html, απλώς αντικαταστήστε το php με το html στο παράδειγμα.

Ανακατεύθυνση στο nginx:

301 ανακατεύθυνση στο nginx για έναν τομέα με www. σε έναν τομέα χωρίς www.

Διακομιστής (
όνομα_διακομιστή www.site;
ξαναγράψω ^ http://site$request_uri? μόνιμος;
}
υπηρέτης(
server_name site;
.... κύρια διαμόρφωση....
}

Ένα άλλο παράδειγμα (ανεπιθύμητο):

Εάν ($host = "www.site") (
ξαναγράψτε ^/(.*)$ http://site/$1 μόνιμο;
}

Ανακατεύθυνση PHP:

header("HTTP/1.1 301 Moved Permanently");
header ("Τοποθεσία: http://www..html");
έξοδος();
?>

Μια ανακατεύθυνση 301 χρησιμοποιείται συχνά ως απόκριση διακομιστή, αντικαθιστώντας το παραδοσιακό σφάλμα 404 – Δεν βρέθηκε με αυτήν την ενέργεια. Για να το θέσω απλά, όταν ένας επισκέπτης ακολουθεί έναν εσφαλμένο σύνδεσμο ή μια διαγραμμένη σελίδα, δεν θα συναντήσει ένα μήνυμα όπως: "Συγγνώμη, αλλά αυτή η σελίδα έχει διαγραφεί", αλλά θα ανακατευθυνθεί σε άλλη έγκυρη σελίδα. Αν και αυτό το σημείο είναι αμφιλεγόμενο μεταξύ των ειδικών και ως εκ τούτου υπάρχουν αρκετές πιθανές λύσεις.

Πρώτον, υπάρχουν δύο κατηγορίες σφαλμάτων 404: η πρώτη είναι παραδοσιακή (κλασική), όταν η σελίδα λείπει πραγματικά, και η δεύτερη είναι όταν παρουσιάζεται ένα τέτοιο σφάλμα λόγω "στρεβλωμένων" εξωτερικών συνδέσμων. Επομένως, στην πρώτη περίπτωση, είναι καλύτερο να αφήσετε τα πάντα ως έχουν, δηλαδή "σφάλμα 404". Αλλά στη δεύτερη περίπτωση, είναι καλύτερο να φροντίσετε να κάνετε ανακατεύθυνση στη σωστή διεύθυνση URL, εάν είναι δυνατή η επαναφορά της από έναν κατεστραμμένο σύνδεσμο ή η ανακατεύθυνση του χρήστη στην κύρια σελίδα.

Στην περίπτωση που ένα μεγάλο έργο ή μια περίπλοκη δομή τοποθεσίας χρειάζεται να επεξεργαστεί εκ νέου, ο ιδιοκτήτης αντιμετωπίζει συχνά πολλαπλές ανακατευθύνσεις ή μεγάλες αλυσίδες. Αυτό σημαίνει ότι η ανακατεύθυνση δεν πραγματοποιείται σε ένα βήμα, αλλά σε πολλά - αυτή είναι μια αρνητική κατάσταση και πρέπει να αποφευχθεί. Εάν ένα ρομπότ αναζήτησης ακολουθήσει έναν τέτοιο σύνδεσμο και λάβει πολλές ανακατευθύνσεις στη σειρά, θα αρχίσει να πιστεύει ότι θέλουν να το εξαπατήσουν και θα σταματήσει τις ενέργειές του και γενικά θα σταματήσει να ευρετηριάζει τέτοιους συνδέσμους.

Εάν είναι δυνατόν, θα πρέπει να προσπαθήσετε να αποτρέψετε τις ανακατευθύνσεις εντός του πόρου. Για παράδειγμα, εάν οι σύνδεσμοι που οδηγούν από άλλους πόρους στον ιστότοπο δεν μπορούν να διορθωθούν και απαιτείται ανακατεύθυνση, τότε οι κατεστραμμένοι εσωτερικοί σύνδεσμοι πρέπει να διορθωθούν. Αν και αυτό μπορεί να μην επηρεάσει την κατάταξη ή την ευρετηρίαση, είναι καλύτερα να είστε ασφαλείς και να αποφεύγετε τέτοια αμφιλεγόμενα ζητήματα.

Όταν δημιουργείτε κανόνες ανακατεύθυνσης στο .htaccess, πρέπει να εξαιρέσετε πραγματικές διευθύνσεις αρχείων και καταλόγων στο διακομιστή και να παρακολουθείτε την επιλογή.