У меня уже есть обработчик 404 в SPA, который работает. Проблема здесь в том, что Google, например, ссылается на старые страницы, которые больше не существуют. В то время как пользователь увидит пользовательский компонент 404, Google, я полагаю, получит 200 OK и продолжит думать, что страница действительна.
{
path: '*',
name: 'not-found',
component: NotFound // 404
}
У меня есть сервер, перенаправляющий на / и позволяющий vue обработать маршрутизацию с использованием History:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
Это стандартная установка Vue CLI с бэкэндом php. В настоящее время PHP используется только для вызовов API.
Есть ли способ заставить сервер вернуть код состояния 404 в этом сценарии?
Предлагаемое решение?
Сервер ничего не знает о маршрутизации, происходящей во внешнем интерфейсе, но я мог бы сделать так, чтобы веб-пакет выводил карту сайта или что-то подобное, что может быть проверено сервером, установил 404 в заголовке и позволил ему загрузить SPA, который показывает 404. Будет ли это быть в порядке или есть лучшее решение?