Перенаправление большого количества URL с заголовком htaccess или php - PullRequest
1 голос
/ 08 апреля 2010

Я подвергся капитальному ремонту веб-сайта, и теперь у меня более 5000 входящих ссылок с поисковых систем и внешних сайтов, служб закладок и т. Д., Которые приводят к неработающим страницам или 404 ошибкам.

Многие страницы имеют соответствующие "постоянные ссылки" или известную иерархию замещения / структуру URL.

Я начал перечислять основные перенаправления с помощью htaccess или физических файлов с простым перенаправлением местоположения заголовка, которое явно не является устойчивым!

Как лучше всего перечислить все старые адреса ссылок и соответствующие им новые адреса с помощью htaccess, php заголовков, mysql, файла sitemap или лучше иметь все неработающие ссылки и ждать, пока поисковые системы и т. Д. Снова индексировать мой сайт?

Существуют ли какие-либо последствия для наличия большого количества файлов для перенаправления в течение этого временного периода до сброса ссылок?

Ответы [ 3 ]

6 голосов
/ 08 апреля 2010

почему бы не иметь этот список в каком-либо подходящем формате - базе данных или плоском файле, и загрузить его в файл обработчика ошибок 404?А затем просто найдите REQUEST_URI и используйте заголовок (Location: ") для перенаправления

.htaccess

ErrorDocument 404 /404.php

404.php

<?PHP
if ($newurl=db_lookup($_SERVER['REQUEST_URI'])) {
  header("Location: $newurl", 1, 301);
}
0 голосов
/ 16 июля 2012

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

Разрешите пример:

В .htaccess корневой папки моего сайта у меня есть что-то вроде этого:

RewriteRule ^resource/show/(.*)_([0-9]*)/ <a href="http://www.mysite.no/bulkredirect/dam2news/" rel="nofollow">http://www.mysite.no/bulkredirect/dam2news/</a>$2 [R=301,L]

Затем в папку bulkredirect/dam2news я положил новый файл .htaccess с новыми перенаправлениями, например ::

.

RewriteRule 1119$ http://www.mysite.no/index.php?id=843&tx_ttnews[tt_news]=2594 [R=301,L]

Теперь ключевым моментом здесь является соответствие двух идентификаторов (в этом примере 1119 и 2594), и это я сделал с помощью умного каскадного запроса к базе данных. Вам также, вероятно, потребуется выработать регулярные выражения, соответствующие вашей ситуации. Но общая идея состоит в том, чтобы иметь отдельный файл .htaccess, чтобы избежать беспорядка в главном файле и облегчить последующее обслуживание (может просто повторить запрос db и вывести его туда).

0 голосов
/ 08 апреля 2010

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

Redirect 301 /old-path /new-path

сгенерированный с помощью скрипта должен перевернуть вас.

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

...