У меня есть сайт на AngularJS. Сайт использует режим hashbang, и в настоящее время у меня возникла проблема с предварительной отрисовкой.
У моего веб-сайта есть такой URL: http://www.watchawearin.com/#!/item/511
и у меня есть бэкэнд по URL: http://www.watchawearin.com/api/
.
Теперь, когда Facebook посещает указанный выше URL-адрес, он становится: http://www.watchawearin.com/?_escaped_fragment_=/item/511
и это нормально, у меня есть конфигурация для этого в nginx:
if ($prerender = 1) {
rewrite .* /api/prerender break;
proxy_pass $scheme://www.watchawearin.com;
}
Facebook получает предварительно отрисованную страницу, но перенаправляется на: http://www.watchawearin.com/api/prerender/?_escaped_fragment_=%2Fitem%2F511
.
Могу ли я добиться обслуживания предварительно обработанной страницы, но без перенаправления?
Итак, я нашел решение:
if ($prerender = 1) {
rewrite .* /api/ last;
}
и в / api / у меня есть серверная часть фреймворка PHP, где у меня есть сопоставление маршрутов ?_escaped_fragment_=/...
и я могу делать с ним все, что хочу.