middleware no longer requires URL to end in /