React Router PHP ჰოსტინგზე

როგორც უკვე იცით, პროექტის React ბილდის შემდეგ ის წარმოადგენს ჩვეულებრივ სტატიკას, რომელიც შესაძლებელია ჩაიწეროს ნებისმიერ ჰოსტინგზე, და ის იქ მაშინვე იმუშავებს.

თუმცა, არსებობს პრობლემა React Router-თან. საქმე ისაა, რომ Router მუშაობისას ცვლის გვერდების URL-ს ბრაუზერში. ამ დროს რეალურად გვერდი არ გადაიტვირთება, არამედ იცვლება მხოლოდ URL JavaScript-ის საშუალებით.

საიტზე, რომელიც ატვირთულია ჰოსტინგზე, Router იმუშავებს. მაგრამ, თუ რომელიმე გვერდზე ვიმყოფებით, გარდა მთავარისა, და გადავტვირთავთ მას, გამოვა 404 შეცდომა.

და ეს ლოგიკურია, რადგან ბრაუზერი ეძებს ფაილს მითითებული URL-ით, როგორც ეს ჩვეულებრივ მუშაობს სტატიკურ საიტებზე. ხოლო ჩვენს აპლიკაციაში ასეთი გვერდი არ არსებობს, რადგან ჩვენ მხოლოდ ვიმიტირებთ მათ, სინამდვილეში კი მთელი ჩვენი აპლიკაცია მუშაობს index.html-ზე.

პრობლემის მოსაგვარებლად საჭიროა გავაკეთოთ ისე, რომ ყველა URL, რომელიც არ მიდის რეალურად არსებულ ფაილებზე, გადამისამართდეს index.html-ზე. ეს კეთდება ვებ-სერვერის საშუალებით, რომელიც მუშაობს ჰოსტინგზე.

ვირტუალური ჰოსტინგები მუშაობენ PHP-ზე. როგორც წესი, სერვერად გამოიყენება Apache. მასში ხელმისაწვდომია სპეციალური ფაილი .htaccess, რომლის საშუალებითაც შესაძლებელია დავაყენოთ გადამისამართება.

ამისთვის საჭიროა თქვენი საიტის ფესვში (root) მოათავსოთ ფაილი .htaccess შემდეგი შიგთავსით:

.htaccessRewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Задание 1

გააკეთეთ პროექტი React Router-ით.

Задание 2

აიტვირთეთ იგი ჰოსტინგზე. დარწმუნდით, რომ ნაგულისხმევად როუტინგი არ მუშაობს.

Задание 3

გამოსწორეთ პრობლემა ფაილი .htaccess-ის საშუალებით.