10 of 10 menu

React Router σε PHP hosting

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

Υπάρχει, ωστόσο, ένα πρόβλημα με το React Router. Το θέμα είναι ότι το Router κατά τη λειτουργία του αλλάζει το URL των σελίδων στο πρόγραμμα περιήγησης. Σε αυτή την περίπτωση, η σελίδα δεν φορτώνει πραγματικά ξανά, αλλά αλλάζει μόνο το URL μέσω JavaScript.

Σε ένα site που έχει ανεβεί σε hosting, το Router θα λειτουργεί. Αλλά, αν βρίσκεστε σε κάποια σελίδα του site, εκτός από την κύρια, και την ξαναφορτώσετε, θα εμφανιστεί σφάλμα 404.

Και αυτό είναι λογικό, αφού το πρόγραμμα περιήγησης θα ψάξει για ένα αρχείο στο συγκεκριμένο URL, όπως συνήθως λειτουργούν τα στατικά sites. Και στην εφαρμογή μας μια τέτοια σελίδα δεν θα υπάρχει, αφού μόνο προσομοιώνουμε την ύπαρξή τους, ενώ στην πραγματικότητα όλη μας η εφαρμογή εκτελείται στο index.html.

Για να λυθεί το πρόβλημα, πρέπει να γίνει έτσι ώστε όλα τα URL που δεν οδηγούν σε πραγματικά υπάρχοντα αρχεία, να ανακατευθύνονται στο index.html. Αυτό γίνεται με τα μέσα του web server που λειτουργεί στο hosting.

Τα εικονικά hostings λειτουργούν σε PHP. Κατά κανόνα, ως server χρησιμοποιείται ο Apache. Σε αυτόν είναι διαθέσιμο ένα ειδικό αρχείο .htaccess, με το οποίο μπορείτε να ορίσετε την ανακατεύθυνση.

Για να το κάνετε αυτό, στη ρίζα του site σας πρέπει να τοποθετήσετε το αρχείο .htaccess με το ακόλουθο περιεχόμενο:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.html [QSA,L]

Δημιουργήστε ένα έργο με React Router.

Ανεβάστε το σε hosting. Βεβαιωθείτε ότι από προεπιλογή η δρομολόγηση δεν λειτουργεί.

Διορθώστε το πρόβλημα χρησιμοποιώντας το αρχείο .htaccess.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη