The HyperText Transfer Protocol (HTTP) 301 Moved Permanently
redirect status response code indicates that the resource requested has been definitively moved to the URL given by the Location
headers. A browser redirects to this page and search engines update their links to the resource (in 'SEO-speak', it is said that the 'link-juice' is sent to the new URL).
Even if the specification requires the method (and the body) not to be altered when the redirection is performed, not all user-agents align with it - you can still find this type of bugged software out there. It is therefore recommended to use the 301
code only as a response for GET
or HEAD
methods and to use the 308 Permanent Redirect
for POST
methods instead, as the method change is explicitly prohibited with this status.
Status
301 Moved Permanently
Example
Client request
GET /index.php HTTP/1.1 Host: www.example.org
Server response
HTTP/1.1 301 Moved Permanently Location: http://www.example.org/index.asp
Specifications
Specification | Title |
---|---|
RFC 7231, section 6.4.2: 301 Moved Permanently | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
301 | Chrome Full support Yes | Edge Full support 12 | Firefox Full support Yes | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
See also
308 Permanent Redirect
302 Found
, the temporary redirect