Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
10 of 10 menu
◀
Новинка! Бесплатный тренинг "Практика на Проектах". Начало 29 октября. Нарабатываем опыт! Вступайте!

React Router на PHP хостинге

Как вы уже знаете, после сборки проект React представляет собой обычную статику, которую можно загрузить на любой хостинг, и она там сразу будет работать.

Есть, однако, проблема с React Router. Дело в том, что Router при работе меняет URL страниц в браузере. При этом реально страница не перезагружается, а только меняется URL средствами JavaScript.

В сайте, выложенном на хостинг, Router будет работать. Но, если находясь на какой-то странице сайта, кроме главной, перезагрузить ее, то вывалится 404 ошибка.

И это логично, ведь браузер будет искать файл по заданному URL, как обычно работают статичные сайты. А в нашем приложении такой страницы не будет, так как мы только имитируем их, а на самом деле все наше приложение работает на index.html.

Для решения проблемы нужно сделать так, чтобы все URL, не ведущие на реально существующие файлы, перенаправлялись на index.html. Это делается средствами web-сервера, работающего на хостинге.

Виртуальные хостинги работают на PHP. Как правило в качестве сервера используется Apache. В нем доступен специальный файл .htaccess, с помощью которого можно задать перенаправление.

Для этого вам в корне вашего сайта нужно разместить файл .htaccess со следующим содержимым:

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

Сделайте проект с React Router.

Залейте его на хостинг. Убедитесь, что по умолчанию роутинг не работает.

Исправьте проблему с помощью файла .htaccess.

←
↑
Русский▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañ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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить