用于ajax爬网的Apache重写条件

时间:2013-08-12 06:18:10

标签: apache mod-rewrite angularjs seo

我正在尝试实施google ajax crawlable snapshots

为此,我在.htaccess中添加了以下重写条件,如下所示

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$
RewriteRule ^(.*)$ /snapshots/%1.html? [NC,L]

它工作正常但在以下情况下失败。

www.mysite.com/#!/

这与Google文档中的www.mysite.com/?_escaped_fragment_=/一样被抓取。

我的快照目录中有一个准备好的index.html来提供此类请求

但是对于上面的重写条件,它正在搜索.html,结果是403响应。感谢您是否可以帮我修复此类请求的index.html页面

1 个答案:

答案 0 :(得分:1)

您需要针对上述用例的其他规则。将此规则插入现有规则

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/$ [NC]
RewriteRule ^ /snapshots/index.html? [NC,L]

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.+)$ [NC]
RewriteRule ^ /snapshots/%1.html? [NC,L]