Skip to content

Commit d3ecb91

Browse files
committed
Fix redirects
This regression was introduced in ca2a162. Redirects like /team.html -> /governance didn't work anymore. In the update from Rocket v0.5.0-rc.3 to v0.5.0, there was a breaking change missed in the changelog of v0.5.0-rc.4 that affected us. https://github.com/rwf2/Rocket/blob/v0.5.0-rc.4/CHANGELOG.md The relevant section in the changelog starts with the line: "The status codes used when built-in guards forward were changed." We used the status code 404 to invoke our custom `not_found` catcher. This custom catcher is responsible for the redirects. When the status code changed to 422, this catcher was not invoked and the redirects were not triggered. This fix simply invokes the catcher for both status codes 404 and 422.
1 parent 0b933a8 commit d3ecb91

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/main.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,12 @@ fn not_found(req: &Request) -> Result<Template, Redirect> {
301301
Ok(not_found_locale(lang))
302302
}
303303

304+
#[catch(422)]
305+
#[allow(clippy::result_large_err)]
306+
fn unprocessable_content(req: &Request) -> Result<Template, Redirect> {
307+
not_found(req)
308+
}
309+
304310
fn not_found_locale(lang: String) -> Template {
305311
let page = "404";
306312
let context = Context::new(page, "error404-page-title", false, (), lang);
@@ -526,5 +532,8 @@ async fn rocket() -> _ {
526532
redirect_bare_en_us,
527533
],
528534
)
529-
.register("/", catchers![not_found, catch_error])
535+
.register(
536+
"/",
537+
catchers![not_found, unprocessable_content, catch_error],
538+
)
530539
}

0 commit comments

Comments
 (0)