我正在使用grunt-html-snapshot创建我的Angular webapp的静态快照。该网站由使用以下层次结构的CMS驱动
/ (page)
/somecateogry (page)
/somecategory/somepage (page)
/somecategory/anotherpage (page)
问题是grunt将页面快照存储在带有下划线的类别中,例如 snapshot ____ somecategory_somepage.html 。
使用提供的重写规则,我可以访问类别页面的快照: domain.com /?_ escaped_fragment _ = / category 。这会被重写为 / snapshots / snapshot ____ category.html 。
然而,我遇到问题的子页面会被重写为 / snapshots / snapshot ____ category / subpage.html 。
说实话,我没有使用mod_rewrite的真实经验(我已经到了我现在的位置,主要归功于这个article),所以我觉得列出我试图有点徒劳的东西。但是,我希望我认为我不知何故需要获取QueryString,然后将所有斜杠(/)重写为下划线。我也有点担心如果我添加子类别将会发生什么,但现在这并不重要。
<VirtualHost *:80>
DocumentRoot "/var/node-www/hornet"
# Snapshot directory (Crawling directory)
RewriteLog "/var/node-www/hornet/rw-log"
RewriteLoglevel 4
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$
RewriteRule ^(.*)$ /snapshots/snapshot____%1.html? [NC,L]
ProxyPreserveHost On
ProxyRequests Off
ServerName local.hornet
ServerAlias local.hornet
# Send to Tomcat
ProxyPass /rest/ http://localhost:8080/Hornet/rest/
ProxyPassReverse /rest/ http://localhost:8080/Hornet/rest/
# Send to Node
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>