【发布时间】:2015-08-07 04:17:00
【问题描述】:
问题
用户访问的正常网址是:
http://www.example.com/reviews/view-course?courseID=933
但是,我使用的是角度路由,因此无法被 Facebook 或 Twitter 抓取 - 所以我试图将它们转移到服务器上呈现的具有正确元标记的页面。
我正在尝试什么
这是我正在尝试的,但它只是以某种方式在我的服务器上创建了一个无限循环,例如 Facebook 超时
# for social media crawlers
RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet)
RewriteRule /view-course(.*)$ http://www.example.com/social_scrape2/static-page?courseID=$1 [P]
tl:dr 基本上,例如,当用户点击在 Facebook 上分享页面 http://www.example.com/reviews/view-course?courseID=933 时,我希望 Facebook 在抓取时被重定向到 http://www.example.com/social_scrape2/static-page?courseID=933
也试过了
RewriteRule ^reviews/view-course?courseID=(.*)$ http://www.example.com/social_scrape2/static-page?courseID=$1 [P]
This page gave me the idea of how to do this if it helps at all
(添加了 Angular 标签,因为做同样事情的人可能会做出贡献)
更新
这是我.htaccess文件中的所有重写条件
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet)
RewriteCond %{QUERY_STRING} ^courseID=([^&]+)
RewriteRule ^reviews/view-course$ /social_scrape2/static-page [P]
#angular html5
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /reviews/index.html [NC,L]
【问题讨论】:
标签: angularjs .htaccess mod-rewrite