Php ανακατεύθυνση για μια συγκεκριμένη σελίδα. Έξοδος κώδικα ανακατεύθυνσης JavaScript χρησιμοποιώντας τη συνάρτηση PHP echo().

Αυτο 12.04.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

Οποιοσδήποτε μπορεί να στείλει. Αλλά η σωστή ανακατεύθυνση είναι μια ολόκληρη τέχνη. Αλλά είναι ακόμα πιο δύσκολο να ανακατευθύνετε τους χρήστες σε ο σωστός δρόμοςστο Διαδίκτυο. Μια ανακατεύθυνση σε php είναι η καταλληλότερη για αυτό.

Τι είδους ανακατεύθυνση;

Στον προγραμματισμό ιστού, προκύπτουν καταστάσεις όταν χρειάζεται να ανακατευθύνετε έναν χρήστη ακολουθώντας έναν σύνδεσμο σε άλλη διεύθυνση. Φυσικά, με την πρώτη ματιά, η εφαρμογή μιας τέτοιας ανακατεύθυνσης φαίνεται λίγο «παράνομη». Στην πράξη, μια τέτοια ανακατεύθυνση είναι σε ζήτηση όχι μόνο μεταξύ των εισβολέων, αλλά και μεταξύ των ειλικρινών webmasters:

Σε ποιες περιπτώσεις μπορεί να απαιτείται ανακατεύθυνση:

  • Όταν αντικαθίσταται η μηχανή τοποθεσίας, η αρχιτεκτονική ολόκληρου του πόρου αλλάζει ως αποτέλεσμα. Τότε προκύπτει το πρόβλημα του πώς να κάνετε μια ανακατεύθυνση.
  • Όταν η δομή ενός πόρου επανασχεδιάζεται, προστίθενται, διαγράφονται ή μεταφέρονται ολόκληρες ενότητες ή ένα υλικό. Ενώ συμβαίνει αυτή η διαδικασία, είναι προσωρινά δυνατή η ανακατεύθυνση του χρήστη στην επιθυμητή ενότητα.
  • Εάν ο ιστότοπος άλλαξε πρόσφατα όνομα τομέα– μετά την αλλαγή του ονόματος τομέα, το παλιό θα εξακολουθεί να εμφανίζεται στο αποτελέσματα αναζήτησης. Σε αυτήν την περίπτωση, ο χρήστης ανακατευθύνεται στο νέο τομέαθα εφαρμοστεί μηχανή αναζήτησηςαυτομάτως;
  • Κατά τη διαδικασία εξουσιοδότησης, κατά κανόνα, σε έναν μεγάλο ιστότοπο υπάρχουν δύο ομάδες χρηστών: απλοί επισκέπτες και διαχειριστές πόρων. Σε αυτήν την περίπτωση, είναι λογικό να υλοποιηθεί μια ανακατεύθυνση για κάθε χρήστη σύμφωνα με τα δικαιώματα και τον ρόλο του. Μετά την εξουσιοδότηση, ο διαχειριστής ή οι συντονιστές του ιστότοπου μεταβαίνουν στο διαχειριστικό τμήμα του πόρου και οι επισκέπτες πηγαίνουν στο τμήμα χρήστη του πόρου.
Δυνατότητες ανακατεύθυνσης σε php

Σε αντίθεση με άλλες γλώσσες, η PHP έχει ορισμένα πλεονεκτήματα στην υλοποίηση ανακατευθύνσεων:

  • Php είναι γλώσσα διακομιστήπρογραμματισμός. Επομένως, η ανακατεύθυνση δεν θα γίνει στον κώδικα html των σελίδων που εμφανίζονται στο πρόγραμμα περιήγησης, αλλά στο σενάριο που βρίσκεται στον διακομιστή.
  • Η ανακατεύθυνση σε php μπορεί να υλοποιηθεί με διάφορους τρόπους. Το οποίο επεκτείνει σημαντικά την εφαρμογή του.
  • Χάρη στην επεξεργασία δεδομένων στον διακομιστή, η ανακατεύθυνση υλοποιήθηκε με χρησιμοποιώντας php, λιγότερο επιρρεπής στις επιπτώσεις των φίλτρων μηχανών αναζήτησης.

Για ανακατεύθυνση στην PHP, χρησιμοποιείται η συνάρτηση header(). Χρησιμοποιείται για αποστολή κεφαλίδα http. Η σύνταξή του είναι:

κενή κεφαλίδα (συμβολοσειρά $string [, bool $replace = true [, int $http_response_code ]])

Ορίσματα που γίνονται δεκτά από τη συνάρτηση:


  • string $string – συμβολοσειρά κεφαλίδας;

Υπάρχουν δύο τύποι αυτού του επιχειρήματος. Το πρώτο είναι για την αποστολή του κωδικού κατάστασης σύνδεσης. Ξεκινά με "HTTP/". Ο άλλος τύπος στέλνει έναν κωδικό κατάστασης (REDIRECT 302) στο πρόγραμμα περιήγησης πελάτη μαζί με την κεφαλίδα. Αυτό το όρισμα ξεκινά με "Τοποθεσία:"


  • Το bool $replace είναι ένα προαιρετικό χαρακτηριστικό του τύπου bool . Υπεύθυνος για την παράκαμψη της προηγούμενης κεφαλίδας. Εάν οριστεί σε true , η προηγούμενη κεφαλίδα ή οι κεφαλίδες του ίδιου τύπου θα αντικατασταθούν. Εάν το όρισμα οριστεί σε false, τότε η κεφαλίδα δεν θα ξαναγραφεί. Από προεπιλογή, αυτή η τιμή έχει οριστεί σε true ;
  • http_response_code – το όρισμα επιβάλλει τον κώδικα απόκρισης HTTP. Η εγκατάσταση του κώδικα θα είναι επιτυχής με την προϋπόθεση ότι το όρισμα συμβολοσειράς δεν είναι κενό.

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

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


Χρησιμοποιώντας την ανακατεύθυνση header().

Για επίδειξη της λειτουργίας σε τοπικός διακομιστήςπρέπει να δημιουργήσετε δύο αρχεία. Ας ονομάσουμε ένα από αυτά redirect.php και το άλλο redirect2.php. Μέσα στην πρώτη θα πραγματοποιήσουμε μια κλήση συνάρτησης με την ακόλουθη μορφή:

Σε άλλο αρχείο βάζουμε τη γραμμή:

echo "Γεια σας! Βρίσκεστε στο αρχείο redirect2.php";


Μερικά ακόμη πρακτικά παραδείγματα χρήσης ανακατεύθυνσης σε php:

  • Αναγκαστική μετάδοση κωδικού κατάσταση http– όταν χρησιμοποιείται το πρώτο όρισμα της συνάρτησης header() τύπου "location", από προεπιλογή ο κωδικός κατάστασης "302" (προσωρινά μετακινήθηκε) μεταβιβάζεται στην κεφαλίδα. Αυτό μπορεί να αποτελέσει πρόβλημα κατά τη μετακίνηση ενός πόρου σε άλλο όνομα τομέα. Στις μηχανές αναζήτησης, μια τέτοια προσωρινή ανακατεύθυνση μπορεί να διαρκέσει περισσότερο. Εξάλλου, η μηχανή αναζήτησης αναλύει συνεχώς τον κωδικό κατάστασης. Και λέει "προσωρινά μετακόμισε". Παράδειγμα αναγκαστικής επανεγγραφής του κωδικού κατάστασης "302" σε "301" (μετακινήθηκε μόνιμα):

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

  • Χρήση ανακατεύθυνσης εξωτερικών συνδέσμων για ανακατεύθυνση ανάλογα με τον ρόλο του χρήστη. Ο ρόλος καθορίζεται κατά τη διαδικασία ελέγχου ταυτότητας. Η τιμή προς επεξεργασία γράφεται στη μεταβλητή $who:

  • Απλοποιημένη πρακτικό παράδειγμαανακατεύθυνση υλοποίησης εξωτερικό σύνδεσμο– κάνοντας κλικ στον σύνδεσμο θα μεταφερθείτε στη σελίδα php. Από εδώ ο χρήστης μεταφέρεται στο Rambler σε 5 δευτερόλεπτα. Κώδικας HTML:

Πιέστε με

Κωδικός αρχείου Redirect3.php:


Λοιπόν, εδώ είμαστε, μαθαίνουμε τα βασικά της ανακατεύθυνσης στην PHP. Τώρα μπορείτε να αναλάβετε με ασφάλεια την ανακατεύθυνση των χρηστών στο τη σωστή κατεύθυνση. Το κύριο πράγμα είναι να μην κάνετε λάθος στην κατεύθυνση, διαφορετικά θα οδηγήσετε όλους τους χρήστες σας στον ιστότοπο κάποιου άλλου...

Γρήγορη πλοήγηση σε αυτήν τη σελίδα:

Εάν αποφασίσετε να γράψετε ένα σενάριο και να ανακατευθύνετε την PHP, τα πλεονεκτήματα αυτού του βήματος είναι προφανή: Η PHP είναι μια γλώσσα δέσμης ενεργειών προσανατολισμένη στον διακομιστή. η ανακατεύθυνση θα πραγματοποιηθεί μέσω ενός σεναρίου στον διακομιστή και όχι στο πρόγραμμα περιήγησης των επισκεπτών. Ορισμένες ανακατευθύνσεις μπορούν να πραγματοποιηθούν από την πλευρά του πελάτη - μέσω ανακατεύθυνσης js (δηλαδή μέσω ανακατεύθυνσης JavaScript).

Αυτή είναι μια πιο ευέλικτη και ευέλικτη προσέγγιση και μπορείτε να εκτελέσετε πολλαπλούς τύπους ανακατευθύνσεων στην PHP, σε αντίθεση με άλλες μεθόδους. Ακολουθούν οι πιο συνηθισμένοι τύποι ανακατεύθυνσης που μπορούν να γίνουν στην PHP: α) Ανακατεύθυνση 301 PHP (κατάσταση μόνιμης ανακατεύθυνσης), β) ανακατεύθυνση 302 PHP (κατάσταση προσωρινής ανακατεύθυνσης), γ) Ενημέρωση.

Αυτό το άρθρο θα είναι χρήσιμο, πρώτα απ 'όλα, για αρχάριους webmasters που αναζητούν τρόπους υλοποίησης Ανακατευθύνσεις URLεάν αυτό δεν είναι δυνατό χρησιμοποιώντας άλλες κοινές λύσεις όπως το Htaccess.

Επικεφαλίδα Γλώσσα PHPλειτουργίες

Για παράδειγμα, ας υποθέσουμε ότι θέλετε να ανακατευθύνετε σε αυτήν τη διεύθυνση URL http://www.somewebsite.com/target.php. Στο πρωτότυπο σελίδες PHPΘα πρέπει απλώς να καλέσετε αυτό το σενάριο ανακατεύθυνσης:

Δοκιμάστε επίσης αυτό το απλό πείραμα στην τοπική σας φιλοξενία:

1) Ανοιχτό επεξεργαστής κειμένουκαι εισάγετε αυτόν τον κωδικό:

Αποθηκεύστε το ως targetpage.php.

2) Ανοίξτε ένα άλλο κενό αρχείο κειμένουκαι εισάγετε αυτόν τον κωδικό:

Αποθηκεύστε το ως originalpage.php.

3) Τώρα ξεκινήστε το πρόγραμμα περιήγησής σας. ΣΕ γραμμή διευθύνσεωνπληκτρολογήστε το πρόγραμμα περιήγησης: http://localhost/originatingpage.php

4) Θα παρατηρήσετε ότι αφού πατήσετε το κουμπί enter, αυτή η διεύθυνση URL: http://localhost/originatingpage.php ανακατευθύνεται στο http://localhost/targetpage.php και στο targetpage.php, και βλέπετε τις λέξεις "Γεια, αυτό είναι κώδικας” -χ”.

Ένα από τα πιο συνηθισμένα λάθη μπορεί να βρίσκεται στο σχεδιασμό κώδικας htmlδιευθύνω πάλιν:

Δοκιμάστε αυτό το πείραμα:

Μεταβείτε στο σενάριο originalpage.php και προσθέστε οποιοδήποτε HTMLετικέτα:

header('Τοποθεσία: http://localhost/targetpage.php');

Ας υποθέσουμε ότι έχετε κώδικα όπως αυτός:

Αυτό είναι ένα σφάλμα ανακατεύθυνσης

Συνιστούμε να διαβάσετε

Κορυφή