React Router-ը PHP հոստինգում
Ինչպես արդեն գիտեք, բիլդից հետո React-ի նախագիծը ներկայանում է որպես sովորական ստատիկա, որը կարելի է վերբեռնել ցանկացած հոստինգի վրա, և այն այնտեղ անմիջապես կաշխատի։
Սակայն, կա խնդիր React Router-ի հետ։ Բանը նրանում է, որ Router-ը աշխատելիս փոխում է էջերի URL-ը բրաուզերում։ Սակայն, իրականում էջը վերաբեռնված չի լինում, միայն URL-ն է փոխվում JavaScript-ի միջոցով։
Հոստինգում տեղադրված կայքում
Router-ը կաշխատի։ Բայց, եթե գտնվելով
կայքի որևէ էջում, բացի գլխավորից,
վերաբեռնել այն, ապա կստացվի 404
սխալ։
Եվ դա տրամաբանական է, քանի որ բրաուզերը կփնտրի
ֆայլ նշված URL-ով,
ինչպես սովորաբար աշխատում են ստատիկ կայքերը։
Իսկ մեր հավելվածում նման էջ
չի լինի, քանի որ մենք միայն իմիտացնում ենք
դրանք, իսկ իրականում մեր ամբողջ
հավելվածը աշխատում է index.html ֆայլի վրա։
Խնդիրը լուծելու համար անհրաժեշտ է անել այնպես,
որ բոլոր URL-ները, որոնք չեն տանում դեպի իրական
գոյություն ունեցող ֆայլեր, վերահղվեն
index.html։ Դա արվում է
հոստինգում աշխատող վեբ-սերվերի միջոցով։
Վիրտուալ հոստինգները աշխատում են PHP-ով։
Որպես կանոն, որպես սերվեր օգտագործվում է Apache-ը։
Դրան հասանելի է հատուկ ֆայլ .htaccess,
որի օգնությամբ կարելի է սահմանել
վերահղում։
Դրա համար անհրաժեշտ է ձեր կայքի արմատում
տեղադրել .htaccess ֆայլը
հետևյալ պարունակությամբ․
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Կատարեք նախագիծ React Router-ով։
Վերբեռնեք այն հոստինգ։ Համոզվեք, որ լռելյայն router-ը չի աշխատում։
Ուղղեք խնդիրը .htaccess ֆայլի օգնությամբ։