Last active
March 22, 2022 19:46
-
-
Save bradleyboy/26ffd2ec7da68919ecd1 to your computer and use it in GitHub Desktop.
nginx rewrite setup for Koken
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Enable gzip. Highly recommending for best peformance | |
gzip on; | |
gzip_comp_level 6; | |
gzip_types text/html text/css text/javascript application/json application/javascript application/x-javascript; | |
# By default, do not set expire headers | |
expires 0; | |
# Set expires header for console CSS and JS. | |
# These files are timestamped with each new release, so it is safe to cache them agressively. | |
location ~ "console_.*\.(js|css)$" { | |
expires max; | |
} | |
# Catch image requests and pass them back to PHP if a cache does not yet exist | |
location ~ "^/storage/cache/images(/(([0-9]{3}/[0-9]{3})|custom)/.*)$" { | |
# Cached images have timestamps in the URL, so it is safe to set | |
# aggresive cache headers here. | |
expires max; | |
try_files $uri /i.php?path=$1; | |
} | |
# Catch .css.lens requests and serve cache when possible | |
location ~ "(lightbox-)?settings.css.lens$" { | |
default_type text/css; | |
try_files /storage/cache/site/${uri} /app/site/site.php?url=/$1settings.css.lens; | |
} | |
# Catch koken.js requests and serve cache when possible | |
location ~ koken.js$ { | |
default_type text/javascript; | |
try_files /storage/cache/site/${uri} /app/site/site.php?url=/koken.js; | |
} | |
# Standard site requests are cached with .html extensions | |
set $cache_ext 'html'; | |
# PJAX requests contain the _pjax GET parameter and are cached with .phtml extensions | |
if ($arg__pjax) { | |
set $cache_ext 'phtml'; | |
} | |
# Do not check for a cache for non-GET requests | |
if ($request_method != 'GET') { | |
set $cache_ext 'nocache'; | |
} | |
# If share_to_tumblr cookie is preset, disable caching (long story) | |
if ($http_cookie ~* "share_to_tumblr" ) { | |
set $cache_ext 'nocache'; | |
} | |
# Catch root requests | |
location ~ ^/?$ { | |
try_files /storage/cache/site/index/cache.$cache_ext /app/site/site.php?url=/; | |
} | |
# All other requests get passed back to Koken unless file already exists | |
location / { | |
try_files $uri $uri/ /storage/cache/site/${uri} /storage/cache/site/${uri}cache.$cache_ext /app/site/site.php?url=$uri&$args; | |
} |
How would I make this work for a subdirectory? I'm still getting /index.php? in my URLs.
# Catch koken.js requests and serve cache when possible
location ~ koken.js$ {
default_type text/javascript;
try_files /storage/cache/site/${uri} /app/site/site.php?url=/koken.js;
}
is not working. T^T
A 404 error appears when accessing the address printed on the browser console
example.com/koken.js?0.22.24
But example.com/index.php? When approached, it comes out normally.
example.com/ndex.php?/koken.js
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
There a full Nginx configuration example here:
https://github.com/koken/docker-koken-lemp/blob/master/conf/nginx-site.conf
. Works fine for me on Debian Jessie