8

This generally has to do with PHP being connected to Apache via FastCGI, rather than mod_php. When this is the case, an extra ? is needed in the rewrites to EE's index.php: From RewriteRule ^(.*)$ /index.php/$1 [L,QSA] To RewriteRule ^(.*)$ /index.php?/$1 [L,QSA]


7

I think the best way to handle that situation would be to use fragment caching on that page, instead of static caching. That way, you can cache most of the page, but escape the parts that you want to remain dynamic (see the Partial Caching documentation for more details). Using fragment caching will still allow the page to be very fast. Not as fast as a ...


4

I have run into this issue before and I was in the same boat. And "Static Page Caching" didn't do it for me, CE Cache did. I learned that I had to make sure I was really caching the site correctly, such as the right areas and embeds. Also I made sure that I wrote my markup in the best way I could to reduce queries. I hope this helps, I have always found ...


4

Another option is to put your form into its own template, then use jQuery load() to load that URL on page load into a div that's included in the pages. That form template won't be cached so you will have a fresh XID each time. <div id="subscription-form"></div> <script type="text/javascript"> $(document).ready(function () { $('#...


3

Escaping will escape pretty much everything it can with {exp..} tags and later in the parse order. If you would like to escape things with an early parse order too, like global variables, you'll want to use pre escaping. Here's an explanation from the Pre Escaping documentation. If the Escape tag is given a unique tagpart (example: {exp:ce_cache:escape:...


3

I think the best way to approach this is to tag the caches with their sibling ids. Structure actually makes this quite easy, because of its global variables: {exp:ce_cache:it tags="{structure:sibling_ids}|{structure:page:entry_id}"} {exp:channel:entries limit="1" ...} ... {exp:ce_cache:add_tag}{entry_id}{/exp:ce_cache:add_tag} {/exp:...


3

@Jae - You can use rules in the same way with CE Cache. The parameter tag= allows to you add tags and then in the cp, control when they are refreshed - hope that helps. In terms caching and partials, I use CE to cache the wrapper with the parameter global="yes" and then escape the stash:get. Then within the stash:set cache the page. I also set the caching ...


3

EngineHosting just posted something about that was effecting performance on some VSC clusters, see http://updates.enginehosting.com/post/37208191032/vsc-performance-impacts But as you say, 53 queries isn't many. Though you may also want to look to see how much memory is used to load the page as well.


3

CE-Cache for EE2 (i.e. CE-Cache 1.101) and for EE3 (i.e. CE-Cache 2.0.2) each have the ability to clear the cache in response to an 'ACT' call. The action is registered in the EE Database as 'break_cache' and appears to require the submission of the CE-Cache "Secret" and the IDs of the channels that you want to break the cache for in a pipe-...


2

This may be a non issue due to a recent posting by EngineHosting: http://updates.enginehosting.com/post/37208191032/vsc-performance-impacts


2

Everyone has their own method for using Stash and the various caching tools. I find that Stash is great for simplifying my structure (more DRY) which also has a side effect of dropping overhead. But my first goal with Stash is "stashing" a block of functionality so that I can move it elsewhere within my "waterfall" of template rendering and / or cloning ...


2

You should never cache things that are this dynamic. CodeIgniter adds an XID to forms which can cause validation errors if they're reused. What you could consider is dynamically loading them, sort of like this: var items = $('.products .product'); $.each(items, function(){ var url = $(this).attr('data-form-url'); $(this).find('form-wrapper').load(...


2

It might be a parse order issue. If so, using Stash should work to save the categories into a variable list, and then you can run the ce_cache:clear when outputting the list (this is untested): {!-- cache a list of the category url titles --} {exp:stash:set_list name="cached_cat_url_title" parse_tags="yes" trim="yes" } {categories} ...


2

Doh! Found out that this option in config.php should be set to "yes": $config['ce_cache_fragment_logged_in_only'] = 'no';


2

I think I've found the issue and solution. It seems sometimes mod_dir will be setup to do it's thing before mod_rewrite. This means that %{REQUEST_URI} for the homepage could end up being index.php instead of /. To account for this, I updated the the htaccess rule: #------------------- CE Cache Static Driver ------------------- RewriteCond %{REQUEST_URI} !...


1

Well, just to answer this, as I bought the plugin: Not sure if it's still supported. I was able to use segment / embed variables to specify unique cache names, so I could cache part / all of a template to a unique ID based on the specific incoming url. That was perfect for my purposes the php does not get parsed but is part of the cached file. So you see ...


1

I can't see how caching the layout is going to help you at all. It's just markup. You need to "cache" the tags that actually generate content and are expensive to run (i.e. the channel entries tag), as well as the rendering of the data (the layout). Therefore you need to wrap the {exp:ce_cache:it} tags around everything in the root template. Also this.. {...


1

Just documenting this if someone else might run into the same issue. It turns out there isn't a hook in Expresso Store (yet) that will allow you to clear caching on updating/inserting of a sale/discount. How I ended up resolving it was by adding a custom hook into the Sales Controller and Discounts Controller in the Store add-on self. I am not a big fan of ...


1

This has also been asked on the official support forum here: https://devot-ee.com/add-ons/support/ce-cache/viewthread/14051. This comment: https://devot-ee.com/add-ons/support/ce-cache/viewthread/14051#49482 also provides a way of caching the layouts although I'm pretty sure it won't address your layout:set issue.


1

I've run into this before as well. The issue is that the layout:set action doesnt occur when the cached content is retrieved, so the parent layout has no way to know what it's contents should be. Have you tried escaping the layout:set part from the cacheing? That may or may not work. Worst case, and the route that I ended up taking is to just use native tag ...


1

I haven't used Bieber's add-on, but, from glancing at the docs, I believe you should use their {language_code} variable to feed CE Cache's url_prefix parameter (had to do something similar using Publisher on a multilingual site). Something like this should do it, I think... maybe: {exp:ce_cache:ic url_prefix="{language_code}" ...}


1

You should be able to simply tag the Cache It tag in your search section with search, and then break on the search tag in the cache breaking settings for "Any Channel". That way, any time an entry changes (from any channel), your search results will be cleared.


1

just add next lines at the beginning of .htaccess right after RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


1

Purchase and implement the Stash EE companion called Mustash to setup up cache clearing rules. With Mustash you'll be able to tell the Stash cach eto empty whenever an entry is modified. http://www.devot-ee.com/add-ons/mustash


1

Currently Freeform does not natively support being cached as it generates a params_id and XID hash on page load that is not reusable due to security concerns. You could, in theory, cache the form, then on submit (or first field change?), use ajax to fetch an uncached version of the same form template and pull the params_id and XID from that uncached form ...


1

Complicated question, Ian, especially since you have Structure involved. I think I'd want to talk with Aaron Waldron directly -- some basis below. the primary ability of CE Cache is to break on change or addition/deletion action within a channel. You can then target what might be broken as a result. you can of course break the entire channel. A tricky part ...


1

kgrote, try and download the latest release of AB Pagination from devot-ee, there was a bugfix about a month ago dealing with this issue. Also, if you're interested in passing that ?feed=rss2 query string with the pagination links you can use the {abp_query_string} variable, more info here: https://getsatisfaction.com/addonbakery/topics/...


1

It turns out the non-rendering tags were actually within a different field... something other than the body text field that had the parse_vars="yes" parameter set. Something apparently changed in a recent version of Stash or CE Cache that caused those tags to no longer be processed. I'm not sure why it was working before but it was. Adding the parse_vars="...


1

You can clear EE cache from Control Panel -> Tools -> Data -> Clear Caching. For CE Cache: Go to CE Cache module settings. Click "View Items" next to either File or Database driver (the method of cache store, usually File). Here you can clear the cache by clicking "Delete Children".


1

For the first part of your question you could use CE Cache's Clean tag {exp:ce_cache:clean} http://www.causingeffect.com/software/expressionengine/ce-cache/user-guide/tags . To recreate all the cache I think you would need to trigger a crawler to go through your site, maybe based on your sitemap, or cron job that does the same.


Only top voted, non community-wiki answers of a minimum length are eligible