React Router PHP ჰოსტინგზე
როგორც უკვე იცით, პროექტის React ბილდის შემდეგ ის წარმოადგენს ჩვეულებრივ სტატიკას, რომელიც შესაძლებელია ჩაიწეროს ნებისმიერ ჰოსტინგზე, და ის იქ მაშინვე იმუშავებს.
თუმცა, არსებობს პრობლემა React Router-თან. საქმე ისაა, რომ Router მუშაობისას ცვლის გვერდების URL-ს ბრაუზერში. ამ დროს რეალურად გვერდი არ გადაიტვირთება, არამედ იცვლება მხოლოდ URL JavaScript-ის საშუალებით.
საიტზე, რომელიც ატვირთულია ჰოსტინგზე,
Router იმუშავებს. მაგრამ, თუ რომელიმე
გვერდზე ვიმყოფებით, გარდა მთავარისა,
და გადავტვირთავთ მას, გამოვა 404
შეცდომა.
და ეს ლოგიკურია, რადგან ბრაუზერი
ეძებს ფაილს მითითებული URL-ით,
როგორც ეს ჩვეულებრივ მუშაობს სტატიკურ საიტებზე.
ხოლო ჩვენს აპლიკაციაში ასეთი გვერდი
არ არსებობს, რადგან ჩვენ მხოლოდ ვიმიტირებთ მათ,
სინამდვილეში კი მთელი ჩვენი
აპლიკაცია მუშაობს index.html-ზე.
პრობლემის მოსაგვარებლად საჭიროა გავაკეთოთ ისე,
რომ ყველა URL, რომელიც არ მიდის რეალურად
არსებულ ფაილებზე, გადამისამართდეს
index.html-ზე. ეს კეთდება
ვებ-სერვერის საშუალებით, რომელიც
მუშაობს ჰოსტინგზე.
ვირტუალური ჰოსტინგები მუშაობენ PHP-ზე.
როგორც წესი, სერვერად გამოიყენება Apache.
მასში ხელმისაწვდომია სპეციალური ფაილი .htaccess,
რომლის საშუალებითაც შესაძლებელია დავაყენოთ
გადამისამართება.
ამისთვის საჭიროა თქვენი საიტის
ფესვში (root) მოათავსოთ ფაილი .htaccess
შემდეგი შიგთავსით:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
გააკეთეთ პროექტი React Router-ით.
აიტვირთეთ იგი ჰოსტინგზე. დარწმუნდით, რომ ნაგულისხმევად როუტინგი არ მუშაობს.
გამოსწორეთ პრობლემა
ფაილი .htaccess-ის საშუალებით.