ajax爬网的Apache重写条件

ajax爬网的Apache重写条件,apache,mod-rewrite,angularjs,seo,Apache,Mod Rewrite,Angularjs,Seo,我在试着实施 为此,我在.htaccess中添加了以下重写条件 RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$ RewriteRule ^(.*)$ /snapshots/%1.html? [NC,L] 它工作正常,但在以下情况下失败 www.mysite.com/#!/ 这在google文档中被爬网为www.mysite.com/?\u转义的\u片段\u=/ 我的快照目录中有一个准备好的index.html,可以为这些请求提供

我在试着实施

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

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$
RewriteRule ^(.*)$ /snapshots/%1.html? [NC,L]
它工作正常,但在以下情况下失败

www.mysite.com/#!/
这在google文档中被爬网为
www.mysite.com/?\u转义的\u片段\u=/

我的快照目录中有一个准备好的
index.html
,可以为这些请求提供服务


但是对于上面的重写条件,它正在搜索
.html
,结果是403响应。如果您能帮助我修复为此类请求提供的
index.html
页面

您将需要针对上述用例的附加规则,我们将不胜感激。在现有规则上方插入此规则

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

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

对于上述用例,您将需要一个额外的规则。在现有规则上方插入此规则

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

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