React Router på PHP-värd
Som du redan vet, efter bygge är ett React-projekt bara vanlig statik som kan laddas upp till vilken webbvärd som helst, och det kommer att fungera direkt där.
Det finns dock ett problem med React Router. Saken är den att Router under drift ändrar sidornas URL i webbläsaren. Samtidigt laddas sidan inte om på riktigt, utan bara URL:en ändras med hjälp av JavaScript.
På en webbplats som lagts ut på en webbvärd
kommer Router att fungera. Men om du, medan du befinner dig
på en sida på webbplatsen, förutom startsidan,
laddar om den, kommer ett 404-fel
att visas.
Och det är logiskt, för webbläsaren kommer
att leta efter en fil vid den angivna URL:en,
som vanliga statiska webbplatser fungerar.
Och i vår applikation kommer en sådan sida
inte att finnas, eftersom vi bara simulerar
dem, och i själva verket hela vår
applikation körs på index.html.
För att lösa problemet måste du se till
att alla URL:er som inte leder till verkligt
existerande filer omdirigeras
till index.html. Detta görs
med hjälp av webbservern som körs
på webbvärden.
Virtuella webbvärdar körs på PHP.
Som regel används Apache som server.
Där finns en speciell fil .htaccess tillgänglig,
som kan användas för att ställa in
omdirigering.
För att göra detta behöver du i roten av din webbplats
placera en fil .htaccess
med följande innehåll:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Skapa ett projekt med React Router.
Ladda upp det till webbvärden. Verifiera att routingen inte fungerar som standard.
Åtgärda problemet med hjälp av
filen .htaccess.