0

我正在使用 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 的经验(我已经到了现在的位置,很大程度上要感谢这篇文章),所以我觉得列出我尝试过的东西有点徒劳。但是,我希望我的想法是正确的,我需要以某种方式获取 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>
4

0 回答 0