Новости

301 Перенаправление сценариев

  1. Определения 301 Redirect Функция веб-сервера, которая перенаправляет посетителя с текущей страницы...
  2. Примеры кода сценария перенаправления 301
  3. Meta Refresh Redirect (Не лучший выбор)
  4. Пример Meta Refresh (не лучший выбор)
  5. JavaScript Redirect (не рекомендуется вообще)
  6. Пример перенаправления Javascript (не рекомендуется)
  7. Сервер перенаправления
  8. Пример перенаправления PHP 301
  9. Пример перенаправления ASP 301 (VBScript)
  10. Пример перенаправления ASP 301 (JScript)
  11. Пример перенаправления ASP .NET 301 (C #)
  12. Пример перенаправления Cold Fusion 301 (CFM)
  13. Пример перенаправления JSP / JAVA 301
  14. Код примера перенаправления CGI / Perl 301
  15. Обработка статических страниц, как если бы они были динамическими
  16. Обработка .html страниц, как если бы они были .php в Apache
  17. Обработка страниц .htm, как если бы они были .asp в IIS
  18. Заключение
  19. Основная статья

Определения 301 Redirect

Функция веб-сервера, которая перенаправляет посетителя с текущей страницы или сайта на другую страницу или сайт, возвращая при этом код ответа, который говорит, что исходная страница или сайт были навсегда перемещены в новое местоположение. Поисковым системам нравится эта информация, и они с готовностью перенесут популярность ссылок (и PageRank) на новый сайт быстро и без проблем. Они также не так часто вызывают проблемы с фильтрами дублирования. Оптимизаторы, такие как 301, перенаправляют, и они обычно являются предпочтительным способом работы с несколькими доменами, указывающими на один сайт. 302 Перенаправление Функция веб-сервера, которая перенаправляет посетителя с текущей страницы или сайта на другую страницу или сайт, возвращая при этом код ответа, который говорит, что исходная страница или сайт был временно перемещен в новое местоположение. Поисковые системы часто интерпретируют их как парк, и не торопятся, выясняя, как обращаться с настройкой. Старайтесь избегать редиректа 302 на вашем сайте, если вы можете (если это действительно только временное перенаправление), и никогда не используйте их в качестве какой-либо формы отслеживания кликов для ваших исходящих ссылок, поскольку они могут привести к «захвату веб-сайта» в некоторых случаях. обстоятельства.

Мета-теги

HTML-теги, которые записываются в раздел заголовка HTML-страницы и передают различные виды информации, но на самом деле не отображаются на странице в виде текста. Например, заголовок, описание и ключевые слова для страницы. метатегов что имеет значение для этого документа является мета-обновления тег. McAnerin Networks предлагает бесплатный генератор метатегов здесь ,

Скрипт на стороне клиента (перейти вниз)

Сценарий на стороне клиента - это программа, которая обрабатывается на клиенте (обычно в веб-браузере) после отправки информации пользователю. В отличие от многих современных веб-браузеров, пауки поисковых систем не запускают сценарии на стороне клиента - поэтому они не могут использоваться для воздействия на поисковые системы, кроме как из-за упущения (то есть сценариев, которые намеренно «оставляют паука позади», полагаясь на тот факт, что браузеры обычно выполняют скрипты). Пример сценария на стороне клиента: Java Script Серверный скрипт (спрыгнуть вниз) Сценарий на стороне сервера - это программа, которая обрабатывается на сервере еще до того, как информация попадет на компьютер зрителя. По сравнению со сценарием на стороне клиента, который обрабатывается на компьютере клиента. Примеры языков, обычно используемых в качестве сценариев на стороне сервера: PHP , JSP , ASP , ASP.NET , PERL а также Холодный синтез ,

PHP

PHP Hypertext Preprocessor (PHP) - это язык программирования на стороне сервера с открытым исходным кодом, широко используемый для веб-сценариев и обработки данных, передаваемых через CGI. PHP может быть написан в виде сценариев, которые находятся на сервере и могут производить вывод HTML, который загружается в веб-браузер. Кроме того, PHP может быть встроен в HTML-страницы, которые затем сохраняются с расширением .php. Затем разделы PHP страницы анализируются механизмом PHP на сервере, и код PHP удаляется перед загрузкой страницы в веб-браузер. Дополнительная информация о PHP ,

Perl

Практический язык извлечения и отчетности (PERL) - это язык программирования на стороне сервера с открытым исходным кодом, широко используемый для веб-сценариев и обработки данных, передаваемых через CGI. Сценарии Perl не встроены в HTML-страницы и не загружаются в веб-браузер, а находятся на сервере. Они выполняются, будучи вызванными командами на страницах HTML или другими скриптами, и могут генерировать вывод HTML, который загружается в веб-браузер. Больше информации о Perl

JSP

Java Server Page (JSP) - это технология для управления содержимым или внешним видом веб-страниц с помощью Java-сервлета, небольших программ, которые указываются на веб-странице и запускаются на веб-сервере для изменения веб-страницы перед ее отправкой. пользователю, который его запросил. Sun Microsystems, разработчик Java, также называет технологию JSP интерфейсом прикладных программ (API) Servlet. JSP сопоставима с технологией Microsoft Active Server Page (ASP). Дополнительная информация о JSP ASP Active Server Pages. Спецификация, позволяющая динамически создавать веб-страницы с использованием HTML, сценариев и повторно используемых компонентов сервера ActiveX. VBScript и JScript являются наиболее распространенными языками сценариев, используемыми для ASP , ASP.NET Набор технологий веб-разработки, продаваемых Microsoft. Программисты могут использовать его для создания динамических веб-сайтов, веб-приложений и веб-сервисов XML. Он является частью платформы Microsoft .NET и является преемником Microsoft Active Server Pages ( ASP ) технология. Хотя вы можете использовать VBScript и JScript с ASP.NET, стандарт C # ColdFusion ColdFusion - это язык программирования промежуточного уровня на основе тегов, используемый главным образом для написания веб-приложений. Язык был создан JJ Allaire и его братом Джереми Allaire, но в настоящее время продукт принадлежит Macromedia (который вскоре будет приобретен Adobe). Больше информации о ColdFusion. JavaScript JavaScript - это язык сценариев - система кодов программирования, созданная Netscape, которая может быть встроена в HTML веб-страницы для добавления функциональности. JavaScript не следует путать с языком программирования Java. Больше информации на Javascript. C # («C Sharp») Объектно-ориентированный язык программирования, разработанный Microsoft в рамках их инициативы .NET. Microsoft на основе C # на C ++ и Java. C # был разработан как язык, который обеспечивал бы баланс между C ++ и быстрой разработкой, Visual Basic, Delphi и Java. Больше информации о C #

Подробная информация

обзор

Проблема с использованием сценариев для перенаправления заключается в том, что поисковые системы не выполняют их. Это означает, что для их работы они должны быть выполнены на сервере, когда страница вызывается, но до того, как поисковая система ее получит. Из этого правила есть только одно исключение, и я расскажу об этом чуть позже.

В общем, поскольку выполнение сценария и перенаправление происходит до того, как страница переходит к пауку, вы можете использовать любой язык сценариев, который хотите, если сервер его выполняет, а сам язык способен перенаправлять и отвечать со статусом код как 301 или 302.

Как правило, перенаправление, в котором не указан 301, рассматривается как 302, поэтому для правильного выполнения 301 необходимо иметь возможность указать код состояния на выбранном вами языке. Есть исключения из этого, но это общее поведение.

Примеры кода сценария перенаправления 301

Клиент перенаправляет

Существует два распространенных типа перенаправлений на стороне клиента - мета-обновление и JavaScript, и только мета-обновление фактически работает для перенаправления поисковой системы. Однако, как вы видите, это не очень хорошая работа. В целом, перенаправления на стороне клиента - плохая идея, и ее следует избегать, если это возможно.

Meta Refresh Redirect (Не лучший выбор)

Давайте начнем с плохого примера. Это также очень, очень распространенный пример, поэтому вам нужно знать об этом. Существует HTML-тег, называемый метаобновлением, который может выполнять перенаправления, которые поисковые системы могут обнаруживать и реагировать на них. Это единственное исключение из идеи, что клиентские скрипты и теги не влияют на поисковые системы. Они обычно смотрят на это.

Вопрос, после того, как они смотрят на это, как они обращаются с этим? Это очень важный вопрос. Во-первых, веб-мастера добросовестно использовали это годами, и если поисковая система не понимает этого, результатом будет множество очень хороших сайтов, которые не обрабатываются должным образом.

Таким образом, поисковая система должна иметь дело с этим. Большинство поисковых систем предполагают, что обновление, которое выполняется быстрее, чем время, необходимое для полной загрузки средней страницы, должно действовать как перенаправление на сервер, тогда как если обновление установлено на достаточно высоком уровне, чтобы пользователь мог увидеть его и обновить свои закладки, Намерение состояло в том, чтобы пользователь исправил свои закладки, а не сервер, чтобы исправить это для них. В этот момент обновление - это скорее вежливость, чем инструкция. Поэтому поисковые системы обычно беспокоятся только о быстрых обновлениях.

Теперь они, по-видимому, рассматривают быстрое мета-обновление как 302, и жизнь намного лучше для всех участников. Я не знаю ни одного официального заявления о том, как они обрабатывают мета-обновление, поэтому эта информация взята из уст в уста и тестирования. Поскольку он обрабатывается как 302, он не является предпочтительным типом перенаправления для целей SEO.

Yahoo, к их огромному кредиту, фактически обрисовала в общих чертах, как они справляются с этим. Если перенаправление метаданных установлено на 0 секунд, оно будет рассматриваться как перенаправление 301. Если оно больше 1 секунды, оно считается перенаправлением 302. Честно говоря, я считаю, что это отличный способ справиться с этим.

MSN Search говорит: «Добавление мета-перенаправления тега в заголовок вашей страницы не удаляет вашу исходную страницу из индекса поиска MSN; однако, это перенаправит посетителей на ваш новый сайт. «Я прочитал это, чтобы означать, что они рассматривают это как перенаправление 302. Поскольку 302 считается временным, исходная страница сохраняется в индексе.

ASK, очевидно, рассматривает мета-обновление 0 как 302, где он получает целевую страницу вместо исходной страницы, но сохраняет ссылку на исходную страницу до тех пор, пока не выяснит, что происходит.

Таким образом, все 4 основных поисковых системы обрабатывают мета-обновление по-разному - я настоятельно рекомендую НЕ использовать его, если у вас есть выбор. Если вам нужно, лучше всего предположить, что мета-обновление 0 будет работать наиболее согласованно и, вероятно, будет восприниматься как 302 всеми, кроме Yahoo, которые будут воспринимать это как 301.

Это противоречит «общепринятому мнению», что мета-обновление приведет к бану или штрафу. Не правда. Это приведет к 302 - который может выглядеть как штраф при некоторых обстоятельствах. 302 могут быть плохими новостями, поскольку целевой контент рассматривается как принадлежащий исходной странице, что может привести к угонам, проблемам с дублированием и множеству других проблем.

Я не рекомендую это, но это может работать как метод последней инстанции. Будьте бдительны .

Пример Meta Refresh (не лучший выбор)

<META HTTP-EQUIV = Обновить содержимое = ”0; URL = HTTP: //www.newdomain.com»>

JavaScript Redirect (не рекомендуется вообще)

JavaScript - это второй тип общего перенаправления на стороне клиента. В отличие от тега meta-refresh, поисковая система игнорирует редирект JavaScript и остается на странице.

Некоторые люди решили, что могут использовать это поведение для спама в поисковых системах, вставляя ключевые слова на страницу, а затем используя быстрое перенаправление JavaScript, чтобы переместить людей на следующую страницу, позволяя пауку остаться и проиндексировать страницу спама.

Google выяснил, как обнаружить эту тактику летом 2004 года, и в результате многие сайты потеряли свои рейтинги, в результате чего по крайней мере одна печально известная SEO-компания подала в суд на них, а также выглядела очень плохо.

Короче говоря, перенаправления JavaScript не работают для поисковых систем, и их использование может привести к удалению вас из поисковой системы в зависимости от обстоятельств.

Никогда не используйте JavaScript-редирект на страницу или домен, который вы хотите ранжировать в поисковых системах.

Единственная причина, по которой я включил их на этой странице - это предупреждение. Иногда вы можете использовать их на страницах, недоступных для поисковых систем, таких как определенные системы корзины покупок и т. Д., Но в целом вам лучше избегать их.

Пример перенаправления Javascript (не рекомендуется)

<script type = ”text / javascript”>
<! -
window.location = «http://www.newdomain.com/»
// ->
</ Скрипт>

или же

<body onLoad = "setTimeout (location.href = 'http: // xxx', '0')">

Я не могу подчеркнуть, что этот метод НЕ рекомендуется.

Это дает чистый эффект показа людям и поисковым системам 2 разных вещей - не очень хорошее начало для долгосрочных результатов. В основном это рискованно.

Сервер перенаправления

Серверы не проходят автоматически через каждую веб-страницу, которую они обслуживают, и ищут сценарии для запуска. Они просматривают только те файлы, которые, как они знают, могут содержать сценарии на стороне сервера. Это экономит накладные расходы для сервера и является более эффективным. Традиционно файлы, оканчивающиеся на .htm и .html, считаются статическими, и поэтому большинство серверов не будут пытаться их выполнить. Вы можете заставить их распознаваться как динамические, но в целом этого не делается.

Когда динамическая страница вызывается с сервера, сервер сначала просматривает страницу, а затем отправляет ее пользователю. Затем он выполнит все сценарии, которые он распознает как сценарии, которые он должен выполнить, а затем отправит результаты пользователю. Это означает, что динамическая страница на сервере может выглядеть совсем иначе, чем когда она наконец достигает пользователя. Для некоторых систем CMS характерно иметь только одну страницу, и содержимое этой страницы контролируется переменными, отправленными ей. Это одна из причин, почему поисковые системы будут не доверять страницам с большим количеством переменных.

Чтобы выполнить сценарий на стороне сервера, сервер должен быть настроен на обработку типа страницы, на которой он находится, и сценарий должен присутствовать на странице (обычно в заголовке или в самой верхней части страницы).

Пример перенаправления PHP 301

заголовок («HTTP / 1.1 301 перемещен навсегда»);
заголовок («Местоположение: http://www.newdomain.com/newdir/newpage.htm»);
выход();

Пример перенаправления ASP 301 (VBScript)

<% @ Language = VBScript%>
<%
Response.Status = ”301 перемещено навсегда”
Response.AddHeader «Местоположение», «http://www.newdomain.com/newdir/newpage.asp»
response.end
%>

Пример перенаправления ASP 301 (JScript)

function PermanentRedirect (strDestinationUri) {
Response.Clear ();
Response.Status = 301;
Response.AddHeader («Местоположение», strDestinationUri);
Response.Flush, ();
Response.End ();
}

Замечания:

StrDestinationUri должен быть абсолютным URI для максимальной совместимости клиента. Функция предполагает, что «Response.Buffer = true;» была установлена ​​в какой-то момент перед вызовом функции, и при возникновении ошибки произойдет ошибка (это конфигурация по умолчанию для IIS5 и выше).

Пример перенаправления ASP .NET 301 (C #)

<script runat = ”server”>
private void Page_Load (отправитель объекта, System.EventArgs e)
{
Response.Status = «301 перемещено навсегда»;
Response.AddHeader ( «Location»,»http://www.new-url.com/»);
}
</ Скрипт>

Пример перенаправления Cold Fusion 301 (CFM)

Просто добавьте этот код на страницу ColdFusion:

<.cfheader statuscode = ”301 ″ statustext =” Перемещено навсегда ”>
<.cfheader name = ”Location” value = ”http://www.new-url.com/”>

Пример перенаправления JSP / JAVA 301

Просто добавьте этот код на свою страницу или скрипт:

<%
response.setStatus (301);
response.setHeader («Местоположение», «http://www.new-url.com/»);
response.setHeader («Соединение», «Закрыть»);
%>

Код примера перенаправления CGI / Perl 301

Perl отличается от приведенных выше примеров, потому что он не идет на странице вообще. На самом деле это скрипт, который вызывается (обычно из cgi-bin). «Страницы» обычно выглядят как «pages.cgi» и называются так, как если бы они были скриптами, а не веб-страницами.

#! / USR / бен / Perl
использовать CGI;
мой $ q = cgi-> new ();
выведите $ q-> redirect (
-location => 'http://www.newsite.com/newpage.cgi',
-status => 301,
);

Обработка статических страниц, как если бы они были динамическими

Иногда вы захотите сделать перенаправления на страницах, которые являются стандартными статическими веб-страницами (например, htm или html). Это особенно распространено, когда вы пытаетесь переключиться со старой статической системы на новую динамическую. Проблема заключается в том, что поскольку поисковые системы не выполняют сценарии, сценарии перенаправления не будут работать для поисковой системы на статической странице. Что делать?

Ну, есть исправление. Больше похоже на кучу. Но это работает. Что вы делаете, так это сообщаете веб-серверу, что страницы с расширением .htm (и / или .html) на самом деле являются динамическими и должны рассматриваться как динамические страницы. Это немного увеличит нагрузку на ваш сервер (так как все страницы .htm будут обработаны до их рендеринга), но это очень мало, и вы, вероятно, не заметите этого.

Это не отличалось бы от загрузки, если бы вы все равно переключили все свои страницы на динамические.

Обработка .html страниц, как если бы они были .php в Apache

Вы можете принудительно проанализировать все страницы * .htm интерпретатором php с помощью директивы .htaccess:

Приложение AddType / x-httpd-php .html

Внесите соответствующие изменения, если вы хотите обработать документы * .htm:

Приложение AddType / x-httpd-php .htm

Обработка страниц .htm, как если бы они были .asp в IIS

В диспетчере служб Интернета перейдите на вкладку «Домашний каталог» в свойствах своего веб-сайта и нажмите кнопку «Конфигурация». На вкладке «Сопоставления приложений» этого всплывающего окна вы можете управлять обработкой файлов. Вы хотите настроить новое отображение для расширения HTM, которое выглядит точно так же, как отображение ASP. Вы также можете сделать это для файлов HTML, если вы их используете.

Некоторые системы настроены не так, как у меня - просто посмотрите, какие настройки установлены для ваших ASP-страниц, и продублируйте их для HTM-страниц.

Некоторые системы настроены не так, как у меня - просто посмотрите, какие настройки установлены для ваших ASP-страниц, и продублируйте их для HTM-страниц

Заключение

Перенаправление сценариев может многого добиться, и, если оно на стороне сервера, вы, как правило, достаточно уверены в том, что поисковые системы следуют за ним. Как правило, это занимает меньше времени и проще использовать перенаправление веб-сервера, используя либо апаш или же IIS , Тем не менее, перенаправление с использованием сценариев является законной техникой для людей, не имеющих полного контроля над своим сервером, или для тех, у кого есть очень специфические сценарии, требующие перенаправления, которые не поддерживаются веб-сервером напрямую.

Следующий: Геолокация и перенаправления

Основная статья

Подробная техническая информация

Конкретные сценарии и как с ними справиться

Если не указано иное, все статьи, написанные Яном Макарином, BASc, LLB. Copyright © 2002-2004 Все права защищены. Разрешение должно быть конкретно предоставлено в письменной форме для использования или перепечатки в любом месте, кроме как на этом сайте, но мы разрешаем это и не взимаем за него плату, кроме обратной ссылки. Связаться с нами для дополнительной информации.

связанные с

Вопрос, после того, как они смотрят на это, как они обращаются с этим?
Что делать?