Sha256: 5d173f4d5703384637a90bbf2265a18c8939c31e972ad228c0e5c3a531709297
Contents?: true
Size: 1.29 KB
Versions: 5
Compression:
Stored size: 1.29 KB
Contents
module Gluttonberg module Middleware class Rewriter def initialize(app) @app = app end def call(env) path = env['PATH_INFO'] unless path =~ /^#{Gluttonberg::Engine.config.admin_path}/ || path.start_with?("/assets/") || path.start_with?("/user_asset/") page = Gluttonberg::Page.find_by_path(path, env['gluttonberg.locale'] , env['HTTP_HOST']) unless page.blank? env['gluttonberg.page'] = page env['GLUTTONBERG.PATH_INFO'] = path if page.redirect_required? return [301, {"Location" => page.redirect_url}, ["This resource has permanently moved to #{page.redirect_url}"]] elsif page.rewrite_required? env['PATH_INFO'] = page.generate_rewrite_path(path) else env['PATH_INFO'] = "/_public/page" end else page = Gluttonberg::Page.find_by_previous_path(path, env['gluttonberg.locale'] , env['HTTP_HOST']) unless page.blank? return [301, {"Location" => page.current_localization.path}, ["This resource has permanently moved to #{page.current_localization.path}"]] end end end @app.call(env) end end # Rewriter end # Middleware end # Gluttonberg
Version data entries
5 entries across 5 versions & 1 rubygems