HomePhabricator

Redirect `/source/x` (no slash) to `/source/x/` (canonical) when viewer is…

Description

Redirect /source/x (no slash) to /source/x/ (canonical) when viewer is logged out and "x" is public

Summary:
Fixes T12035. Normally, the "abc" -> "abc/" redirect is handled automatically when "abc" hits a 404.

However, in this case, "source/x" does not 404. We route this to a valid controller because some VCS requests omit the slashes, then manually perform the redirect if we aren't serving a VCS request.

Allow this controller to serve public resources so we can serve the redirect to logged-out users instead of prompting them to login so they can be redirected.

Test Plan: Visited /source/x as a logged-out user, where x is a public repository.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12035

Differential Revision: https://secure.phabricator.com/D17097