Настройка редиректа

S
На сайте с 11.03.2010
Offline
29
646

Здравствуйте, обыскался везде, но не нашел нужной инфы, суть в следующем.

Учусь делать правильный ЧПУ, вот думаю насколько правильно получилось.

Значит в htaccess настроил сначало 301-ый редирект на домен с www и всеми параметрами:

RewriteCond %{HTTP_HOST} ^sait.ru

RewriteRule (.*) http://www.sait.ru/$1 [R=301,L]

затем передачу всех параметров в index.php:

RewriteRule ^(.*)$ ./index.php [L,QSA]

в самом index.php соответствено хочу делать проверку УРЛ

так вот собственно вопрос

к примеру если я ввожу адрес вида www.sait.ru получаю в логах статус 200, т.е. ок

если ввожу без www то в логах тоже статус 200 и в адресной строке появляется www

Затем к примеру задаю такой адрес www.sait.ru/qwe/?

то получаю в логах на /qwe/? статус 301 а следом сразу /qwe/ статус 200

Вопрос 1 - это верное решение?

Если ввести адрес без www ---- sait.ru/qwe/ получаю статус 200

НО! вводя sait.ru/qwe/? получается два 301 редиректа и тока потом код 200

Т.е. я так понимаю в этом случае сначало 301 идет на домен с www, а затем уже исправление

url (убираю ?) ставлю

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

header("Location: http://www.site.ru".$link);

Почему если вводить верный УРЛ но без www сразу отдается код 200,

а при 301-ом редиректе при удалении GET параметров и вводе без www получается сразу два 301-ых редиректа и затем тока код 200?

Как вообще правильно должна работать система, с учетом требований поисковиков.

Я так понимаю в идеале должен быть тока один 301-ый редирект при вводе "неверной" ссылки

а затем код 200 сформированной "правильной" ссылки.

Обясните идиоту плиз

Brand from Amber
На сайте с 18.08.2007
Offline
293
#1
secach:
Как вообще правильно должна работать система, с учетом требований поисковиков.

http://lib.ru/WEBMASTER/rfc2068/section-10.html

secach:
Я так понимаю в идеале должен быть тока один 301-ый редирект при вводе "неверной" ссылки
а затем код 200 сформированной "правильной" ссылки.

Смотри п. 10.4.5.

Лучший способ понять что-то самому - объяснить это другому.
S
На сайте с 11.03.2010
Offline
29
#2

Спасибо за ссылку, много нового для меня, но конкретно про часть которую вы процетировали - у меня есть 404-ая ошибка, просто я делаю 301-ый редирект если после ссылки идут случайные параметры, сесия или кто-то ошибся в ссылке, например поставил вместо одного, два слеша, или пробел, то в данном случае 301-ый, а вот если вводится реально не существующий url то 404-ый,

просто сам часто при копировании или работе непосредственно с адресом бывает проскакивает два слеша или пробелы, а параметры могут передоваться не спициально или специально(доброжелателями, например в виде ссылки www.site.ru/qwe/?show=porno), но если их оставить, то возможно дублирование контента, что не желательно

p.s. Под "неверной" ссылкой я понимаю ссылку вида www.site.ru/qwe//qwe2 //?asf=dsf в то время как www.site.ru/qwe/qwe2/ - верная ссылка

Brand from Amber
На сайте с 18.08.2007
Offline
293
#3
S
На сайте с 11.03.2010
Offline
29
#4
Brand from Amber:
secach, http://yandex.ru/partners

в таких случаях отдается 404-ая , но (/ru/forum/comment/7471421) если сюда добавить &chtoto=123, то получится две одинаковые страницы, и таких можно наделать много, я помню спрашивал у яндекса, что будет если новости на сайте все время смещаются и в url меняется тока параметр страницы, на что они логично ответили закрывайте в роботсе, а не хочется терять входящие ссылки, если ктото указал в url "лишний" параметр, иначе везде конечно можно было поставить 404 и все, поставил лишний слешь 404, не закрыл слешь в конце 404 (или наоборот закрыл - тут на любителя)

p.s. честно говоря я просто смотрел разные неплохие сайты (по моему мнению) и следил как они реагируют на ошибки в url, и стрался учесть их, только не отдавать контент под разными url, а делать 301-ый на правильный

Brand from Amber
На сайте с 18.08.2007
Offline
293
#5

secach, я уже ответил, что лично я бы во всех случаях указания неправильного URL выдавал бы сёрферу 404 и информационное окно "возможно Вы ошиблись при вводе URL? Интересующая Вас страница может находиться по адресу: bla-bla-bla". Считаю данный вариант самым правильным.

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