fix bug: redirect loop on root route