Как правильно перенаправить?

123 4
K
На сайте с 31.01.2001
Offline
737
#11

В этом случае у вас не будет кода 404, будет 302 (или 301, не помню).

ErrorDocument 404 http://www.site.ru/ - так 302.

ErrorDocument 404 / - так 404, но в адресной строке останется адрес несуществующего документа, а покажется главная страница.

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
J
На сайте с 08.06.2006
Offline
844
#12

Я делаю так!

при условии, что товара (у меня интернет-магазин) нет уже в базе

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

header ("location: http://site.com");

exit();

При этом Яндекс видит все это как 302 редирект (смотрел в ошибках по сайту на webmaster.yandex.ru)

J
На сайте с 08.06.2006
Offline
844
#13

ели так

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

exit();

то даже прописаном в аксесе

ErrorDocument 404 /index.php

не перекидает на index.php

mastserg
На сайте с 14.04.2005
Offline
108
#14

я использую такую конструкцию

в .htaccess

ErrorDocument 404 /index.php?status=404

а в скрипте

...

$close_objects_error = array("403", "404");

...

if( empty($status) || in_array($status, $close_objects_error)){

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

header("Status: 404 Not Found");

header("HTTP/1.1 301 Moved Permanently");

header("Location: http://$_SERVER[SERVER_NAME]/");

exit();

код отлавливает статус, если ошибка отдает 404 а следом 301 на главную.

при желании можно создать и отдельную страницу под 404, но надо не забыть, что бы в хедере она 404 код отдавала, иначе дубли плодится начинают (летом яндекс 404 не очень как то вычищал вот и поставил 301 - голова теперь не болит :) )

Постоянно покупаю места под статьи, много (/ru/forum/188576)
J
На сайте с 08.06.2006
Offline
844
#15

Вместо 404 ставить 301? При этом на главную

Это правильно будет?

mastserg
На сайте с 14.04.2005
Offline
108
#16
joost:
Вместо 404 ставить 301? При этом на главную
Это правильно будет?

можно 301 на главную (или куда душа пожелает)

можно создать 404.php где в первых строчка прописать:


header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
...
а тут вывод своей страницы с сообщением, что не найдено

а в .htaccess написать тогда

ErrorDocument 404 /404.php

вариантов решения много - зависит лишь от возможностей.

J
На сайте с 08.06.2006
Offline
844
#17

сама конструкция

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

header ("location: http://site.com.ua");

exit();

после этого посетитель должен оказатся на site.com.ua?

mastserg
На сайте с 14.04.2005
Offline
108
#18

да, окажется

J
На сайте с 08.06.2006
Offline
844
#19
mastserg:
да, окажется

так точно? или кажется? а то Яндекс видит это как 302 редирект

mastserg
На сайте с 14.04.2005
Offline
108
#20

так вопрос был - перекинет ли юзера на указанный хост - я ответил перекинет

лучше используй

Для 404 ошибки

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

header("Status: 404 Not Found");

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

header("HTTP/1.1 301 Moved Permanently");

header("Location: http://$_SERVER[SERVER_NAME]/");

123 4

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