header() и индексация

J
На сайте с 08.06.2006
Offline
844
1392

На странице page1.php?id=123 используется вот такая конструкция:

header("HTTP/1.1 404 Not Found");

header ("location: page1.php?id=123&br=321 ");

exit();

Будет ли проиндексирована страница page1.php, если

1.) кроме упоминания о ней в header ("location: page1.php?id=123&br=321 "); ссылка на эту страницу нигде не встречается

2.) ссылка на страницуpage1.php?id=123&br=321 есть на карте сайта и на других страницах сайта

Как быстро будет удалена страница, где использована даная конструкция и как быстро будет занесена в индекс страница page1.php?id=123&br=321 ?

Страници page1.php?id=123 и page1.php?id=123&br=321 по контенту идентичны.

AM
На сайте с 04.11.2003
Offline
57
#1

/ru/forum/80658

кажется, схожие вопросы, не правда ли?

SunDrop
На сайте с 28.12.2005
Offline
34
#2
joost:
header("HTTP/1.1 404 Not Found");

Хммм... Давай оттолкнемся от целей. (надеюсь я их правильно понял из сообщения)

Если цель Удалить из индекса page1.php?id=123, а вместо ее поставить в индекс page1.php?id=123&br=321, то используй 301 редирект, а не header-404

Как прописать редирект. Различные варианты редиректа:

1. Простой редирект:

Redirect 301 / http://www.domainname.ru/

Ставится в файле .htaccess или httpd.conf для Apache, как описано выше. Первый "/" означает, что всё с верхнего уровня сайта, включая все подкаталоги, будет переадресовано (не забывайте поставить последний "/").

Если Вы хотите переадресовать только страницу, сохранив PR старой страницы, можно сделать так:

Redirect 301 /old/old.htm http://www.you.ru/new.htm

где:

/old/old.htm - путь и имя старой страницы
http://www.you.com/new.htm - новый путь и новое имя перемещенной страницы

2. Использование mod_rewrite:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.ru
RewriteRule ^(.*)$ http://www.yourdomain.ru/$1 [R=permanent,L]Прописывается в файле .htaccess.

3. Редирект с регулярным выражением:

RedirectMatch 301 (.*) http://www.yourdomain.ru$1

Прописывается в файле .htaccess.

(.*) RedirectMatch фактически соответствует регулярным образцам выражения после доменного имени. Таким образом, нельзя выполнить соответствие образца на ^/yourdomain.ru. Однако, можно преобразовать страницы с использованием .html расширения к файлам того же самого названия, но с .php расширением:

RdirectMatch 301 (.*)\.html$ http://www.yourdomain.ru$1.php

Если необходимо сделать различное перенапрваление для отделный страниц, можно использовать следующее:

RedirectMatch Permanent ^/html/resources.html$ http://www.newdomain.com/resources.php
RedirectMatch Permanent ^/html/other_page.html$ http://www.newdomain.com/other_page.php
RedirectMatch Permanent ^/(.*)$ http://www.newdomain.com/"

RedirectMatch Permanent" - это эквивалент "RedirectMatch 301", строска с "*(Wildcard)" должна быть последней в этом списке.

4. Редирект на PHP:

header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();

Естественно, надо создать страницу, при обращении к которой и будет происходить Редирект, и разместить её на сервере. И лучше укажите HTTP/1.1 (а не HTTP/1.0 или HTTP/0.9, которые не поддерживают виртуальный хостинг)

5. Редирект на ASP:

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.newdomain.ru/newdir/newpage.asp"
response.end
%>

Размещение аналогично п.4.
Код по п.4. и 5. должен быть с самого начала страницы.

6. Редирект с помощью meta refresh::

<meta http-equiv='refresh' content='0; url=http://new.domain.ru'>

где 0 – задержка переадресации в секундах, new.domain.ru –страница, куда переадресуем. Некоторые броузеры не поддерживают META REFRESH.

7. Редирект с помощью JavaScript:

Вот уж где нет предела творчеству и возможности "по изголяться". Варианты переадресации на JavaScript чаще реализуются с использованием функции setTimeout('функция', задержка).

Например, автоматически сделать Click на кнопке "Submit" формы "searchform" через 0.1 сек после загрузки кода:

setTimeout('document.forms["searchform"].Submit.click()', 100);

На кнопку "Submit" можно повесить любое действие, например, открыть новый url в этом окне. Кстати такое редиректы чаще встречаются при организации Дорвеев(DorWay) - броузер Пользователя будет переадресован на другую страницу, а поисковый робот, который "не понимает" JavaScript, будет индексировать ЭТУ страницу, недоступную Пользователю. На ней Дорвейщики размещают текст, напичканный "нужными" ключевыми словами.

Просто переадресовать на другую страницу - вставить после <body> код на JavaScript:

location="http://www.new.domain.ru";
или
document.location.href="http://www.new.domain.ru";
или
window.location.reload("http://www.new.domain.ru");
или
document.location.replace("http://www.new.domain.ru");

В последнем случае уже нельзя будет вернуться на страницу выполнившую переадресацию, т.к. адрес страницы стирается из history (что часто и требуется).

Если нужна задержка по времени, можно оформить location="http://www.new.domain.ru"; в виде функции и вставить её в setTimeout('функция()', задержка_в_милисек);.

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

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

Пункты 6 и 7 для SEO не приемлимы. Пользуйся ими только если понимаешь что это такое и зачем оно нужно именно в данном конкретном случае реализации.

И еще. Если нужно чтобы страница page1.php не попала в индекс - запрети ее индексацию.

Покуда у тебя используются ссылки вида page1.php?..... писать в robots.txt Disallow: page1.php не рекоммендуется.

Вместо этого сделай:

Как не индексировать страницу:
Либо отдай ошибку 404
Либо используй мета-тега robots со значением noindex
Либо, если уже есть подобный повторющийся контент, поставь 301 редирект с этой страницы.
В 20 лет он знал 9 операционных систем и 15 языков программирования, но ни одной женщины

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий