Once again you’ve forgotten about us nginx users. ๐Ÿ™

Here’s my modified /etc/nginx/wp-super-cache file which I include from all my WP virtual hosts. It takes care of all WordPress and wp-super-cache rewrites.

# enable search for precompressed files ending in .gz
# nginx needs to be complied using รขโ‚ฌโ€œ-with-http_gzip_static_module
# for this to work, comment out if using nginx from aptitude
gzip_static on;

# if the requested file exists, return it immediately
if (-f $request_filename) {
break;
}

set $supercache_file '';
set $supercache_uri $request_uri;

if ($request_uri ~ '^.*[^/]$') {
set $supercache_uri '';
}

if ($request_uri ~ '^.*//.*$') {
set $supercache_uri '';
}

if ($request_method = POST) {
set $supercache_uri '';
}

# Using pretty permalinks, so bypass the cache for any query string
if ($query_string) {
set $supercache_uri '';
}

if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
set $supercache_uri '';
}

# if we haven't bypassed the cache, specify our supercache file
if ($supercache_uri ~ ^(.+)$) {
set $supercache_file /wordpress/wp-content/cache/supercache/$http_host/$1index.html;
}

# only rewrite to the supercache file if it actually exists
if (-f $document_root$supercache_file) {
rewrite ^(.*)$ $supercache_file break;
}

# all other requests go to WordPress
if (!-e $request_filename) {
rewrite . /index.php last;
}