Код состояния HTTP (англ. HTTP status code) со статусом 301 Moved Permanently (Перемещено окончательно) свидетельствует о том, что запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка.
Для чего это нужно?
В первую очередь, при изменении доменного имени сайта, необходимо оповестить поисковые системы о смене адреса сайта. Во-вторых, для склейки имени сайта с www и без него. В-третьих для быстрой передачи Page Rank на новый сайт.
PHP
Способ первый
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.example.com"); exit(); ?>
Способ второй
<?php header("Location: http://www.example.com", true, 301); exit(); ?>
Perl
Способ первый
$cgi = new CGI; print $cgi->redirect("http://www.example.com/");
Способ второй
#!/usr/bin/perl -w use strict; print "Status: 301 Moved Permanentlyn"; print "Location: http://www.example.com/nn"; exit;
ASP.NET
Способ первый
<script runat="server"> private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.example.com"); } </script>
Способ второй (с версии 4.0)
RedirectPermanent("http://www.example.com");
ASP
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.example.com/" response.end %>
Ruby on Rails
def do_something headers["Status"] = "301 Moved Permanently" redirect_to "http://www.example.com/" end
ColdFusion
<.cfheader statuscode="301" statustext="Moved Permanently"> <.cfheader name="Location" value="http://www.example.com">
Java (JSP)
<% response.setStatus(301); response.setHeader("Location", "http://www.example.com"); response.setHeader("Connection", "close"); %>
Веб-сервер Apache (.htaccess)
Способ первый (mod_alias, Redirect)
Redirect 301 / http://www.example.com
Способ второй (mod_alias, RedirectPermanent)
RedirectPermanent / http://www.example.com
Способ третий (mod_alias, Redirect permanent)
Redirect permanent / http://www.example.com
Способ четвертый (mod_alias, RedirectMatch)
RedirectMatch 301 ^(.*)$ http://www.example.com/
Способ пятый (mod_rewrite)
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Веб-сервер ngix
rewrite ^(.*)$ http://www.example.com$1 permanent;
Ссылки
Источник: https://www.kobzarev.com/programming/301-moved-permanently/