Stripping Suffixes in H2O
Created on 2020-08-29T05:59:44.531935
H2O does not have anything like `mod_rewrite`. You have to use an mruby handler, mangle the URL there and return it via an `x-reproxy-url` header.
A static file rule so the stylesheet bypasses filtering:
/z/quinn.css: file.file: /var/www/z/quinn.css
/z/: reproxy:on mruby.handler: | lambda do |env| if /\.html$/.match(env['PATH_INFO']) then return [399, {}, []] # pass request along end return [307, {'x-reproxy-url'=>"/z/#{env['PATH_INFO'}.html"}, []] file.dir: /var/www/z
Important: the re-proxy URL must be anchored from the server root, even though `PATH_INFO` will be relative to the handler rule. This caused me great annoyance.
What PATH_INFO says: /cke9k5aos00001aisaxp5ie53
What you actually need to return: /z/cke9k5aos00001aisaxp5ie53.html