Laravel 404 status code для SPA react приложения
Я делаю spa приложение на react+laravel, в котором на laravel написано api. И я хочу сделать для SEO статус коды (404, например).
Кратко: как в laravel+react настроить 404 http ошибку без ssr для несуществующих роутов?
- Например, у меня есть страница с офисом:
/iffices/1
- на ней с помощью react-router я отображаю компоненент страницы. В этом компоненте я отправляю запрос на серверapi/offices/1
. И полученную информацию я вывожу на странице. Но, если такого офиса нет, запрос к api возвращает 404 ошибку, но страница всё равно загружается со статус кодом 200. Как указать браузеру, что такой страницы не должно быть (404)? - Если я запрашиваю вообще не существующую страницу, например
/fsdsdf
, то в react-router я отображаю Page404 компонент. Как помечать такие страницы тоже, как 404? Ниже представлен код:
<BrowserRouter>
<Layout>
<Routes>
<Route path="/" element={<HomePage/>}/>
<Route path="/rent/:officeCrmId" element={<RentOfficePage/>}/>
<Route path="/sell/:officeCrmId" element={<SellOfficePage/>}/>
<Route path='*' element={<Page404 />}/>
</Routes>
</Layout>
</BrowserRouter>
/**
* Redirect all routes (except .md files) to ReactController that renders react
*/
Route::get('/{path?}', [ReactController::class, 'index'])
->where('path', '.*')
->name('home')
;
Источник: Stack Overflow на русском