我在一个Magento网站上使用Lesti FPC,它有10个客户群和许多类别/产品。
我创建了一个shell脚本,它在一夜之间读取sitemap.xml和wget的每个url,以构建站点的缓存。这对客人很有用,但是当客户组用户登录时,他们自己构建缓存(如果他们是第一天的话)。
有谁知道如何制作一个shell脚本来模拟登录,然后拖网站点呢?shell脚本是否可能保存自己的会话/cookie信息以保持登录呢?如果没有,还有其他的想法吗?
非常感谢
发布于 2015-07-06 11:33:05
所以,多亏了一些谷歌搜索和大量的尝试和错误,我找到了一个解决方案,我想我会分享。
您可以通过保存和加载cookie来使用WGET来保存会话/cookie信息。Magento有自己的限制,因为您需要在登录之前建立一个会话cookie,否则脚本将被重定向到“启用-cookie”页面,而不是登录,下面是脚本;
#!/bin/bash
# Establish a session and nab the cookie
wget --save-cookies cookies.txt \
http://www.yourmagentourl.co.uk/
# Post your user credentials to login and update the cookie
wget --save-cookies cookies.txt \
--load-cookies cookies.txt \
--post-data 'login[username]=USERNAME&login[password]=PASSWORD' \
http://www.yourmagentourl.co.uk/customer/account/loginPost/
# Load the cookie for each page you want to WGET to maintain the session
wget --load-cookies cookies.txt \
-p http://www.yourmagentourl.co.uk/some-category.html这就是基础,所以现在很容易从sitemap.xml加载所有urls并构建已登录的缓存版本。
道具到格拉菲斯塔保存饼干信息的指导。
高速缓存快乐!
编辑-根据请求显示原始代码。
下面是循环遍历站点地图的代码,并加载每个页面来为来宾构建缓存。将其保存为cachewarm.sh,并创建一个每晚运行它的cron作业(别忘了先删除或过期页面缓存)
#!/bin/bash
# Pixie Media https://www.pixiemedia.co.uk
# Use the sitemap and reload the Page Cache by accessing each page once
#
wget --quiet http://YOUR-URL.co.uk/sitemap.xml --output-document - | egrep -o "http://YOUR-URL.co.uk/[^<]+" | wget -q --delete-after -i -https://stackoverflow.com/questions/31181640
复制相似问题