Переадресации битой ссылки на новую

Автор Katy93, 06-12-2018, 02:34:01

« назад - далее »

Katy93Topic starter

Я поставила ссылку с другого сайта на свою статью, но позже сделала кое-какие изменения на сайте и ссылка на статью оказалась битой. Статью даже поисковики не успели проиндексировать. Как сделать переадресацию, так чтобы это выглядело как-будто это та статья которая нужна для индексации?
  •  


Sky-fi

В файле .htaccess, находящемся в корне сайта, пропишите
Redirect 301 /old-page.html http://site.com/new-page.html
где /old-page.html - старая страница (у вас может быть и без .html в конце), а http://site.com/new-page.html - абсолютный адрес новой страницы, включая тип протокола и название домена.


Katy93Topic starter

#2
А с помощью php можно сделать редирект? Если например все ссылки на переадресацию хранить в базе данных и при каждом запросе к странице проверять есть ли ссылка в базе данных и если есть делать переадресацию на ту страницу которая то же хранится в базе данных.
Например вот так:

<?php
header
('HTTP/1.1 301 Moved Permanently');
header('Location: http://newredirect.php');
?>

  •  

Sky-fi

Цитата: Katy93 от 06-12-2018, 13:41:35А с помощью php можно сделать редирект?
Можно. Только стоит учитывать, что php обрабатывает интерпретатор, а директивы htaccess работают на уровне сервера. PHP будет создавать дополнительную нагрузку на сервер, а вы еще и SQL хотите задействовать. А смысл в этом вообще какой?

Katy93Topic starter

ЦитироватьPHP будет создавать дополнительную нагрузку на сервер, а вы еще и SQL хотите задействовать. А смысл в этом вообще какой?
А если у меня будет 100 ссылок с которых нужно сделать редирект, то же для этого использовать .htaccess. Сайт со временем меняется и некоторые ссылки становятся битыми и в любом случае нужно делать редирект на другие страницы.
  •  


Sky-fi

#5
Для решения этой проблемы можно использовать переадресацию 301. Для этого нужно создать файл .htaccess на сервере и добавить в него правило:

Redirect 301 /старая-ссылка.html http://ваш-сайт.com/новая-ссылка.html


Здесь "старая-ссылка.html" - это битая ссылка, которую пользователь видит, а "http://ваш-сайт.com/новая-ссылка.html" - новая рабочая ссылка. Теперь при заходе по битой ссылке пользователь будет автоматически перенаправлен на новую страницу, и поисковые системы тоже заметят этот редирект и скорректируют индексацию.

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


Другой вариант - это использование метатега "refresh" в HTML. Для этого откройте страницу старой битой статьи и добавьте следующий код в тег <head>:

<meta http-equiv="refresh" content="0;url=http://ваш-сайт.com/новая-ссылка.html">


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

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


Цитата: Katy93 от 06-12-2018, 17:00:23то же для этого использовать .htaccess
Не вижу проблемы в использовании сотни редиректов, с одной стороны, а с другой - в длительном существовании большинства директив. После переиндексации поисковиками правила можно удалять из файла. Оставляйте только те, на старых страницах которых есть внешние ссылки.
Цитата: Katy93 от 06-12-2018, 17:00:23Сайт со временем меняется и некоторые ссылки становятся битыми
Да, и это нормальное явление для любого сайта. Если нет внезапных скачков вверх в динамике 404 страниц - бояться нечего.

Katy93Topic starter

  •