Client request: GET /index.php HTTP/1.1 Host: www.example.org Server response: HTTP/1.1 301 Moved Permanently Location: https://www.example.org/index.asp
Using an .htaccess file To fix problems with non-existing files or directories using a distributed .htaccess file: Redirect 301 /calendar.html /calendar/ Redirect 301 /not_found.html / Here is an example using a
.htaccess file to redirect a non-secure URL to a secure address without the leading "www": RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://example.com/$1 [R,L]
Static HTML A custom directory redirect, using an index.html file: Home
Using programming languages Here is an example using
Perl CGI.pm: print redirect("https://example.com/newpage.html"); Here is an example using a
PHP redirect: Here is one way to redirect using
Express.js: app.all("/old/url", (req, res) => { res.redirect(301, "/new/url"); });
Caching server Equivalently simple for an
nginx configuration: location /old/url/ { return 301 /new/url/; }
Search engines Both
Bing and
Google recommend using a 301 redirect to change the URL of a page as it is shown in search engine results, providing that URL will permanently change and is not due to be changed again any time soon. ==See also==