Page MenuHomePhabricator

Allow custom Sites to have custom 404 controllers
ClosedPublic

Authored by epriestley on Nov 30 2016, 11:20 PM.
Tags
None
Referenced Files
F13147619: D16966.diff
Fri, May 3, 3:05 PM
Unknown Object (File)
Wed, Apr 24, 10:38 AM
Unknown Object (File)
Mon, Apr 15, 10:54 PM
Unknown Object (File)
Apr 2 2024, 9:45 AM
Unknown Object (File)
Apr 2 2024, 9:45 AM
Unknown Object (File)
Apr 2 2024, 9:45 AM
Unknown Object (File)
Apr 1 2024, 7:36 PM
Unknown Object (File)
Mar 28 2024, 4:23 AM
Subscribers
None

Details

Summary

Currently, custom Sites must match .* or similar to handle 404's, since the fallback is always generic.

This locks them out of the "redirect to canonicalize to path/ code", so they currently have a choice between a custom 404 page or automatic correction of /.

Instead, allow the 404 controller to be constructed explicitly. Sites can now customize 404 by implementing this method and not matching everything.

(Sites can still match everything with a catchall rule if they don't want this behavior for some reason, so this should be strictly more powerful than the old behavior.)

See next diff for CORGI.

Test Plan
  • Visited real 404 (like "/asdfafewfq"), missing-slash-404 (like "/maniphest") and real page (like "/maniphest/") URIs on blog, main, and CORGI sites.
  • Got 404 behavior, redirects, and real pages, respectively.

Diff Detail

Repository
rP Phabricator
Branch
route404
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 14716
Build 19229: Run Core Tests
Build 19228: arc lint + arc unit

Event Timeline

epriestley retitled this revision from to Allow custom Sites to have custom 404 controllers.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
chad edited edge metadata.
This revision is now accepted and ready to land.Nov 30 2016, 11:22 PM
This revision was automatically updated to reflect the committed changes.