Laravel 404 status code для SPA react приложения

Рейтинг: 0Ответов: 0Опубликовано: 20.06.2023

Я делаю spa приложение на react+laravel, в котором на laravel написано api. И я хочу сделать для SEO статус коды (404, например).

Кратко: как в laravel+react настроить 404 http ошибку без ssr для несуществующих роутов?

  1. Например, у меня есть страница с офисом: /iffices/1 - на ней с помощью react-router я отображаю компоненент страницы. В этом компоненте я отправляю запрос на сервер api/offices/1. И полученную информацию я вывожу на странице. Но, если такого офиса нет, запрос к api возвращает 404 ошибку, но страница всё равно загружается со статус кодом 200. Как указать браузеру, что такой страницы не должно быть (404)?
  2. Если я запрашиваю вообще не существующую страницу, например /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')
;

Ответы

Ответов пока нет.