У меня есть одностраничное приложение, написанное AngularJS 1.5.
Мне нужна SEO оптимизация этого сайта.
Во-первых, я хочу сделать правильный ответ HTTP на стороне сервера.
Например, https://www.mos.ru/news/item/999999999999 это адрес несуществующей статьи, страница должна выдавать ошибку 404 на стороне сервера.
Как я могу настроить сервер nginx, для предварительной обработки всех запросов в сценарии php? Может быть, существует настоящий рецепт?
Используйте директиву error_page, чтобы при возникновении ошибки 404 (когда запрошенный файл не был найден), созданная вами пользовательская страница обслуживалась. Мы создадим блок местоположения для файла, где мы сможем убедиться, что корень соответствует расположению нашей файловой системы и что файл доступен только через внутренние перенаправления Nginx (не запрашиваемые напрямую клиентами):
/ И т.д. / Nginx / сайты с поддержкой / по умолчанию
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
. . .
error_page 404 /custom_404.html;
location = /custom_404.html {
root /usr/share/nginx/html;
internal;
}
}
Обычно нам не нужно устанавливать корень в новом блоке местоположения, поскольку он совпадает с корнем в блоке сервера. Тем не менее, мы здесь явно, так что наши страницы ошибок обслуживаются, даже если мы перемещаем наш обычный веб-контент и корень связанного документа в другое место.
Других решений пока нет …