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 Redirect Permanently Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

Browser compatibility

The information shown below has been pulled from MDN's Github (https://github.com/mdn/browser-compat-data).

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes Yes Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support Yes Yes Yes Yes Yes Yes Yes

See also

  • 308 Permanent Redirect
  • 302 Found, the temporary redirect

Document Tags and Contributors

 Contributors to this page: RayannTedds, schuchard, haroldfredshort, fscholz, teoli
 Last updated by: RayannTedds,