page redirect attribute and middleware, resolves #48