Много редиректов в .htaccess

AG
На сайте с 08.01.2003
Offline
139
4067

Добрый день. Появилась такая проблемка, но что-то через поиск по форуму не смог найти ее обсуждение.

Я поменял в очередной раз дизайн на сайте и немного изменились урлы страничек.

Гугл выдал очень много старых страниц, которые сейчас не доступны (не существуют)

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

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

Не отразится ли это на скорости загрузки сайта и на его позициях?

И еще. Я пару десятков старых страниц перенес в новую поддиректорию, и написал им всем редиректы. Это стало выглядеть так

Redirect permanent page1.htm http://www.mysite.ru/dir/page1.htm

А когда зашел в Вебмастер Тулс на гугле, увидел странную запись в разделе Диагностика сайта - Dir has too many redirects. Что он этим хочет сказать? Я же ставил 301 редиректы через htaccess.

Good Luck
[Удален]
#1

На скорости не отразится если правильно пропишете все. Имейте ввиду, что даже если mod_rewrite нашел подходящее правило для данного запроса, он все равно проверит все остальные. Поэтому рекомендуется в конце каждого такого редиректа поставить [L] - флаг.

K
На сайте с 31.01.2001
Offline
737
#2

neolord, никакого mod_rewrite не используется ☝

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
AG
На сайте с 08.01.2003
Offline
139
#3
Имейте ввиду, что даже если mod_rewrite нашел подходящее правило для данного запроса, он все равно проверит все остальные. Поэтому рекомендуется в конце каждого такого редиректа поставить [L] - флаг.

Спасибо за ответы, но можно поподробнее для новичка?

Что такое mod_rewrite ?

И что делает флаг [L] ?

Спасибо.

Ryan
На сайте с 04.12.2007
Offline
36
#4
Alex GT:

Что такое mod_rewrite ?

И что делает флаг [L] ?

юзайте, например, это:

Полное руководство по Apache mod_rewrite

Продаю Semonitor Expert за 3000 wmr (/ru/forum/518053)
[Удален]
#5

Не предствляю как редиректить в .htaccesse без него

Alex GT:
Спасибо за ответы, но можно поподробнее для новичка?
Что такое mod_rewrite ?

И что делает флаг [L] ?

Спасибо.

Читайте доку, а если кратко - то


RewriteEngine On

RewriteRule ^старый адрес$ новый адрес [R=301,L]
... повторить по необходимости

R=301 - это код ответа, L - указание модулю остановить проверку правил на данном.

orphelin
На сайте с 02.07.2006
Offline
261
#6

если сайт посещаемый, то мне кажется это будет значительная нагрузка на cpu

[Удален]
#7

Нет не будет. Во всяком случае не более чем от 50 строк Header: в пхп.

Rudokop
На сайте с 29.07.2008
Offline
90
#8

Я сайт переношу на Друпал и хочу посетителям сделать приятное: для каждый страницы из старой структуры сделать редирект на ту же статью в новой структуре. Речь порядка о 400 страницах. Спасибо, что подняли тему!

[Удален]
#9

хтакксесс для этого - перебор мне кажется.

там одну строчку написать -

ErrorDocument 404 index.php?mode=404&url=%{REQUEST_URI}

а index.php прописать для этого мода маленький код


$OldUrls=array(...старые урлы...);
$NewUrls=array(...новые урлы в том же порядке...)

if ($t=array_search($OldUrls))
{
header ("HTTP1.1/301 Moved Permanently");
header ("Location: ".$NewUrls[$t]);
}
AG
На сайте с 08.01.2003
Offline
139
#10

Спасибо за ответы.

Про флаг [L] Я понял. Т.е. если я его ставлю в конце строчки редиректа, то допустим, найдя запрашиваемую (несуществующую) страничку, следующие после этой команды редиректы читаться не будут и не будет увеличиваться время запроса. Верно?

Отсюда делаю вывод, что странички у которых по логам больше всего 404 ответа надо ставить в самый верх? Иначе, если я поставлю редирект со старой , часто запрашиваемой странички, в самый конец, в последней сотне, то в любом случае будут сначала читаться все предыдущие редиректы? Я правильно понимаю ситуацию?

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