301 – permanent redirect

Автор: | 27 ноября 2010

SEOшники очень любят склеивать имя домена с www. и без него, оставляя что-то одно, кому что больше нравится. Лично мне больше нравится без www, т.к. www – пережиток прошлого, эдакий атавизм.

Apache

В веб-сервере Apache для склейки, как правило, используется редирект или реврайт (правило). Первый способ – это создание двух отдельных доменов на сервере и перенаправление с домена с www на домен без www с помощью редиректа в файле .htaccess, например:

RedirectMatch (.*) https://domain.tld/$1

Если вы сторонник mod_rewrite и домен у вас создан не раздельно, можно использовать следующий код:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.tld$ [NC]
RewriteRule ^(.*)$ https://www.domain.tld/$1 [R=301,NC]

При этом будет происходить редирект с domain.tld на www.domain.tld, если нужно наоборот, просто удалите в правиле "www".

Nginx

В веб-сервере nginx, чтобы перенаправлять запросы с домена с www на домен без www, пропишите в блоке server{} следующий код:

if ($host != 'domain.tld' ) {
   rewrite  ^/(.*)$  https://domain.tld/$1  permanent;
}

Но в этом случае вы не сможете использовать субдомены, если они вам нужны :), пропишите следующее правило:

if ($host = 'www.domain.tld' ) {
   rewrite  ^/(.*)$  https://domain.tld/$1  permanent;
}

N.B.

Учтите, что ВордПресс сам умеет редиректить, в нем нужно изменить настройки в:

Параметры –> Общие


Пропишите в блоках "Адрес WordPress (URL)" и "Адрес сайта (URL)" желаемый адрес, имя домена с www или без него.

TIP
Вы также можете изменить директорию установки WordPress.

Редирект на разных языках

ColdFusion Redirect

<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="https://domain.tld">

PHP Redirect

<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: https://domain.tld" );
?>

ASP Redirect

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","https://domain.tld/"
%>

ASP .NET Redirect

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location",https://domain.tld);
}
</script>

JSP (Java) Redirect

<%
response.setStatus(301);
response.setHeader( "Location", "https://domain.tld/" );
response.setHeader( "Connection", "close" );
%>

CGI PERL Redirect

$q = new CGI;
print $q->redirect("https://domain.tld/");

Ruby on Rails Redirect

def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "https://domain.tld/"
end

Добавить комментарий