我有反应网络应用程序。这是一个单一的页面应用程序,所以基本上有一个“空”HTML文件和一个JS包来完成这一切。
但为了提高SEO的能力,我正在为我的服务器上的机器人爬虫做SSR。我还区分了“桌面”爬虫和“移动”爬虫,并为每个爬虫提供了不同的布局。
我通过用户和机器人的User-Agent字符串来区分它们。
所以这些都是可能的:
REGULAR USER => GETS "EMPTY" HTML + JS BUNDLE
ROBOT DESKTOP => GETS RENDERED HTML WITH DESKTOP LAYOUT
ROBOT MOBILE =>
我希望以这种方式处理nginx中的请求,所以当爬虫获得请求的页面时,我需要通过请求的URL发送单个页面应用程序的静态版本,否则就会动态生成index.html。静态和动态页面位于不同的文件夹(必需)中,因此我在这种情况下使用$src变量。
我的配置:
server {
listen 443 ssl http2;
server_name www.example.com;
set $src "/www";
set $crawler 0;
if ($http_user_agent ~* "examplebot|anotherbot|crawler