pub struct Redirect { /* private fields */ }
Expand description
Response that redirects the request to another location.
§Example
use axum::{
routing::get,
response::Redirect,
Router,
};
let app = Router::new()
.route("/old", get(|| async { Redirect::permanent("/new") }))
.route("/new", get(|| async { "Hello!" }));
Implementations§
Source§impl Redirect
impl Redirect
Sourcepub fn to(uri: &str) -> Self
pub fn to(uri: &str) -> Self
Create a new Redirect
that uses a 303 See Other
status code.
This redirect instructs the client to change the method to GET for the subsequent request
to the given uri
, which is useful after successful form submission, file upload or when
you generally don’t want the redirected-to page to observe the original request method and
body (if non-empty). If you want to preserve the request method and body,
Redirect::temporary
should be used instead.
§Panics
If uri
isn’t a valid HeaderValue
.
Sourcepub fn temporary(uri: &str) -> Self
pub fn temporary(uri: &str) -> Self
Create a new Redirect
that uses a 307 Temporary Redirect
status code.
This has the same behavior as Redirect::to
, except it will preserve the original HTTP
method and body.
§Panics
If uri
isn’t a valid HeaderValue
.
Sourcepub fn permanent(uri: &str) -> Self
pub fn permanent(uri: &str) -> Self
Create a new Redirect
that uses a 308 Permanent Redirect
status code.
§Panics
If uri
isn’t a valid HeaderValue
.
Trait Implementations§
Source§impl IntoResponse for Redirect
impl IntoResponse for Redirect
Source§fn into_response(self) -> Response
fn into_response(self) -> Response
Auto Trait Implementations§
impl !Freeze for Redirect
impl RefUnwindSafe for Redirect
impl Send for Redirect
impl Sync for Redirect
impl Unpin for Redirect
impl UnwindSafe for Redirect
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<H, T> HandlerWithoutStateExt<T> for H
impl<H, T> HandlerWithoutStateExt<T> for H
Source§fn into_service(self) -> HandlerService<H, T, ()>
fn into_service(self) -> HandlerService<H, T, ()>
Service
and no state.Source§fn into_make_service(self) -> IntoMakeService<HandlerService<H, T, ()>>
fn into_make_service(self) -> IntoMakeService<HandlerService<H, T, ()>>
MakeService
and no state. Read moreSource§fn into_make_service_with_connect_info<C>(
self,
) -> IntoMakeServiceWithConnectInfo<HandlerService<H, T, ()>, C>
fn into_make_service_with_connect_info<C>( self, ) -> IntoMakeServiceWithConnectInfo<HandlerService<H, T, ()>, C>
tokio
only.MakeService
which stores information
about the incoming connection and has no state. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 48 bytes