公司项目 AngularJS,后台是Symfony,现在要做SEO需要被BaiduSpider抓到,在网上查了许久
偶然间看到一篇文章觉得不错,核心思想是使用 PhantomJS 预渲染,
不过那篇文章使用的是Nginx服务器,公司使用的Apache服务器,这里给出使用Apache时配置供大家参考
1. 安装phantomJS 服务
可以自己下载,我这里用的 是prerender.io上提供的程序,简单傻瓜
步骤 1. git clone https://github.com/prerender/prerender.git
默认会起在3000端口,如果端口有冲突,可以修改lib下的index.js文件
2. 输入命令 node server.js phantomJS就会启动了,我是把端口改到了3100
2. Apache配置文件.htacess 核心配置如下
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest [NC,OR]
RewriteCond %{QUERY_STRING} _escaped_fragment_
RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff))(.*) http://localhost:3100/http://%{HTTP_HOST}/$2 [P,L]
<IfModule>
大功告成,当然还有更简单的做法,使用prerender.io 网上搜一下一大堆,免费250个页面