When redirecting you should take care to use the right HTTP status code.
From controllers
When redirecting from a controller Show archive.org snapshot , the default status code is 302 Found (aka Moved Temporarily):
redirect_to posts_url # HTTP 302 Moved Temporarily
To use a different code, pass a :status
option:
redirect_to posts_url, status: 301
From routes
When
redirecting from your config/routes.rb
Show archive.org snapshot
, the default status code is 301 Moved Permanently:
get '/stories', to: redirect('/articles') # HTTP 301 Moved Permanently
To use a different code, pass a :status
option:
get '/stories', to: redirect('/articles', status: 302)
Note
By default Show archive.org snapshot Rails sends a header
Cache-Control: max-age=0, private, must-revalidate
with all responses, including redirects. That means if you accidentally use a permenent redirect, it is not cached in browsers.
Posted by Henning Koch to makandra dev (2022-05-12 07:34)