React Router дар хостинги PHP

Чун шумо аллакай медонед, пас аз сохтмони лоиҳа, React як статикаи оддиро ташкил медиҳад, ки метавон онро ба ҳар як хостинг бор кард, ва он дар он ҷо фавран кор мекунад.

Аммо, бо React Router мушкиле ҳаст. Масъала ин аст, ки Router ҳангоми кор кардан URL-и саҳифаҳоро дар браузер тағйир медиҳад. Дар ҳоле ки воқеан саҳифа боргузорӣ намешавад, ва танҳо URL бо воситаҳои JavaScript тағйир меёбад.

Дар сомонае, ки ба хостинг бор шудааст, Router кор мекунад. Аммо, агар шумо дар ягон саҳифаи сомона, ба ҷуз саҳифаи асосӣ, онро боргузорӣ кунед, пас хатогии 404 падидор хоҳад шуд.

Ва ин мантиқӣ аст, зеро браузер файлро дар URL-и додашуда ҷустуҷӯ мекунад, ҳамон тавре ки сомонаҳои статикӣ кор мекунанд. Ва дар барномаи мо чунин саҳифа вуҷуд надорад, зеро мо танҳо онҳоро имзо мекунем, ва дар асл тамоми барномаи мо рӯи index.html кор мекунад.

Барои ҳалли мушкил, бояд тавре кард, ки ҳамаи URL-ҳое, ки ба файлҳои воқеан мавҷудбуда намераванд, ба index.html равона шаванд. Ин бо воситаҳои веб-сервере, ки дар хостинг кор мекунад, анҷом дода мешавад.

Хостингҳои виртуалӣ рӯи PHP кор мекунанд. Одатан ҳамчун сервер Apache истифода мешавад. Дар он файли махсуси .htaccess дастрас аст, ки бо ёрии он метавон равонасозиро таъин кард.

Барои ин шумо дар решаи сомонаи худ бояд файли .htaccess-ро бо mundariҷаи зерин ҷойгир кунед:

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

Лоиҳаеро бо React Router созед.

Задание 2

Онро ба хостинг бор кунед. Боварӣ ҳосил кунед, ки ба таври пешфарз routing кор намекунад.

Задание 3

Мушкилиро бо ёрии файли .htaccess ислоҳ кунед.