【发布时间】:2015-06-17 04:54:37
【问题描述】:
我正在我的站点上为 Drupal 实现 boost 模块并且遇到了这个缓存问题。该站点缓存页面,但是当以匿名用户身份访问时,它给了我错误的缓存页面。我在爱尔兰,希望看到该网站的爱尔兰版本,但是一旦主页被缓存,它就会为我提供该网站的美国版本。
以下是我实施 Boost 所采取的步骤列表
- 首先我转到 /admin/config/development/performance 并禁用“为匿名用户缓存页面”
- 然后我在模块页面上启用了“Boost”和“Boost Crawler”
- 我转到 .HTACCESS 并禁用“绕过 ssl 请求的加速缓存”,因为实时站点具有 https。
- 我生成 .HTACCESS 并将其插入到我自己的 .HTACCESS 文件中的正确位置
我有一种感觉,我可能需要在 .HTACCESS 文件中编写一些自定义代码才能使其正常工作,但在继续之前我真的想要更多的激励。
目前,该网站的未缓存版本在每个国家/地区都可以正确提供,但速度很慢。
所以总结一下我真正需要 Boost 为我做的事情是缓存网站的 200 个版本(这就是我们为网站提供服务的国家/地区的数量),并为这些国家/地区提供正确版本的网站。这可能吗?我该如何实施?
非常感谢任何帮助,谢谢。
更新 1
将此处的代码添加到.HTACCESS后
RewriteCond %{HTTP:Accept-Language} ^et.*$ [NC]
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteCond %{QUERY_STRING} !(^q\=) [NC]
RewriteRule ^(.*)$ /et [L,R=302]
RewriteCond %{HTTP:Accept-Language} ^fi.*$ [NC]
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteCond %{QUERY_STRING} !(^q\=) [NC]
RewriteRule ^(.*)$ /fi [L,R=302]
并通过几个不同的代理访问该站点,我将其缓存在其国家/地区,但现在的问题是它仅缓存了第一个匿名访问者来自的国家/地区。
我的主页位于 cache/normal/SITES_NAME/en_.html 中,我来自巴西、德国、美国、南非或爱尔兰的哪个站点似乎并不重要,它只是缓存en_.html 中的第一个,并在确实需要为每个国家/地区创建一组新的缓存文件时将其提供给任何地方。
我一直在使用 geopeeker.com 和不同的代理来查看来自世界不同地区的网页。
【问题讨论】:
-
强烈建议不要在 https 网站上使用 boost,因为任何形式都可能会泄露信息,商店库存可能会发生变化,而且 .htaccess 还会禁用 https 网站的 boost,因此有多个地方可以更改。链接 - drupal.org/node/1466480 可能对您有所帮助。