我在AngularJS有一个网站。 网站使用hashbang模式,我目前有prerendering的情况。
我的网站有这样的URL: http://www.watchawearin.com/#!/item/511 : http://www.watchawearin.com/api/ !/item/511,我有一个后端的URL: http://www.watchawearin.com/api/ : http://www.watchawearin.com/api/ 。
现在,当Facebook访问上面的URL,它变成: http://www.watchawearin.com/?_escaped_fragment_=/item/511 ://www.watchawearin.com/?_escaped_fragment_=/item/511这是好的,我有一个像这样的nginx的configuration:
if ($prerender = 1) { rewrite .* /api/prerender break; proxy_pass $scheme://www.watchawearin.com; }
Facebook提取预渲染的页面,但被redirect到: http://www.watchawearin.com/api/prerender/?_escaped_fragment_=%2Fitem%2F511 ://www.watchawearin.com/api/prerender/?_escaped_fragment_ http://www.watchawearin.com/api/prerender/?_escaped_fragment_=%2Fitem%2F511 2Fitem%2F511。
我可以实现服务的分段的页面,但没有redirect?
好的,所以我find了解决办法:
if ($prerender = 1) { rewrite .* /api/ last; }
并在/ api /我有一个PHP框架的后端,我有一个路由匹配?_escaped_fragment_=/...我可以做任何我想要的。