- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在一个有 10 个客户组和很多类别/产品的 Magento 网站上使用 Lesti FPC。
我创建了一个 shell 脚本,它会在一夜之间读取 sitemap.xml 和 wget 的每个 url,以构建站点的缓存。这对 guest 非常有用,但是当客户组用户登录时,他们会自己构建缓存(如果他们是当天的第一个人)。
有谁知道如何制作一个可以模拟自己登录然后拖网网站的 shell 脚本? shell 脚本是否有可能保存自己的 session /cookie 信息以保持登录状态?如果没有,还有其他想法吗?
非常感谢
最佳答案
因此,多亏了一些谷歌搜索和大量的反复试验,我找到了一个我认为可以分享的解决方案。
您可以使用 WGET 通过保存和加载 cookie 来保存 session /cookie 信息。 Magento 有它自己的限制,因为您需要在登录之前建立一个 session 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 加载所有 url 并构建缓存的登录版本。
建议 Grafista 指导如何保存 cookie 信息。
快乐的缓存!
编辑 - 根据请求显示原始代码
下面是循环访问站点地图并加载每个页面以为访客构建缓存的代码。将其保存为 cachewarm.sh 并创建一个 cronjob 以每晚运行它(不要忘记先删除或使您的页面缓存过期)
#!/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 -
关于php - Magento FPC Cache Warm 与用户组、wget、Lesti FPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31181640/
我在一个有 10 个客户组和很多类别/产品的 Magento 网站上使用 Lesti FPC。 我创建了一个 shell 脚本,它会在一夜之间读取 sitemap.xml 和 wget 的每个 url
我是一名优秀的程序员,十分优秀!