【发布时间】:2016-07-21 08:59:09
【问题描述】:
在 Magento 安装中,我安装了 Varnish 和 Turpentine。缓存工作正常,但我无法为 GeoIP 重定向块打孔。此块在未安装清漆的开发版网站上正常工作。
此 GeoIP 块需要执行 php 标头位置重定向,以根据用户的 IP 将用户发送到正确的语言/货币。 Magento 配置了多个网站和商店视图。
因为 php 标头位置重定向仅在页面上没有输出时才起作用,所以我已将我的 GeoIP 块包含在 Magento 头块中,然后将 EsiOptions 的生存时间设置为 0。
<block type="page/html_head" name="head" as="head">
<block type="geoipswitch/geoIpSwitch" name="geoIpSwitch">
<action method="setEsiOptions">
<params>
<access>private</access>
<ttl>0</ttl>
</params>
</action>
</block>
...
我知道这不是缓存选项的最佳位置,但我正在努力减少可能出现的问题的数量。我尝试过使用刷新事件和 ajax/esi 方法。
<block type="page/html_head" name="head" as="head">
<block type="geoipswitch/geoIpSwitch" name="geoIpSwitch">
<action method="setEsiOptions">
<params>
<access>private</access>
<ttl>0</ttl>
<method>ajax</method>
</params>
</action>
</block>
...
无论我在刷新缓存后尝试什么,第一个访问者都会被正确重定向,然后之后的每个访问者都会被发送到同一个站点,无论他们的 IP 是什么。
如果有人有任何建议或帮助,我们将不胜感激。
【问题讨论】:
标签: php magento redirect caching