По просьбе PrazdNik, и по вопросу от Lana, решил чето полезненькое написать)
Я не спец поэтому приведенные примеры могут быть не правильны, но они работают) кто будет поправлять буду только рад)
1. закрытие дублей главной страницы (помогли просторы интернета):
в дефолте есть 4 дубля
-с www
-c www и index.php
-без www
-без www но с index.php
301 редирект всего на "без www"
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*) site.ru/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ site.ru/ [R=301,L]
… правила можно прописать без явного указания домена:
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ %1/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ %1/$1 [R=301,L]
2. форумный прикол с /thread4738-1.html
RewriteRule ^forum(.*)-1.html$ site.ru/forum$1.html [R=301,L]
— данный вариант вызывал проблемы при редактировании сообщений на первой странице,
поправка от MakArtSoft :
RewriteRule ^forum/thread(.*)-1.html$ site.ru/forum/thread$1.html [R=301,L]
И добавляю предложенный вариант от MakArtSoft, по склейки ссылок с utm метками:
3. Склейка UTM меток (ссылки выдаваемые твиттером)
RewriteCond %{QUERY_STRING} ^utm_source(.*)$ [NC]
RewriteRule (.*) $1? [R=301,L]
4. Canonical не относится к .htaccess но помогает убрать некоторые дубли (автор SJen)
добавить php код в файл шаблона template.php, в самый верх:
в секции head до закрывающего тега </head> добавить:
Закрытие дублей страниц с применением 301 редиректа!
!!! обсуждение только для инстанта и только закрытие дублей!!!
Склейкаwww, индексных файлов и utm меток будет работать для любой версии движка (для любой cms)Я не спец поэтому приведенные примеры могут быть не правильны, но они работают) кто будет поправлять буду только рад)
1. закрытие дублей главной страницы (помогли просторы интернета):
в дефолте есть 4 дубля
-с www
-c www и index.php
-без www
-без www но с index.php
301 редирект всего на "без www"
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*) site.ru/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ site.ru/ [R=301,L]
… правила можно прописать без явного указания домена:
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ %1/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ %1/$1 [R=301,L]
2. форумный прикол с /thread4738-1.html
— данный вариант вызывал проблемы при редактировании сообщений на первой странице,
поправка от MakArtSoft :
RewriteRule ^forum/thread(.*)-1.html$ site.ru/forum/thread$1.html [R=301,L]
И добавляю предложенный вариант от MakArtSoft, по склейки ссылок с utm метками:
3. Склейка UTM меток (ссылки выдаваемые твиттером)
RewriteCond %{QUERY_STRING} ^utm_source(.*)$ [NC]
RewriteRule (.*) $1? [R=301,L]
4. Canonical не относится к .htaccess но помогает убрать некоторые дубли (автор SJen)
добавить php код в файл шаблона template.php, в самый верх:
$where = $_SERVER["REQUEST_URI"]; }else{ $canonical = $where; } if ($canonical=='/'){$canonical='';} elseif ($canonical=='/index.php') {$canonical='';} $canonical = 'http://'.$_SERVER['HTTP_HOST'].$canonical;
<link rel="canonical" href="<?php echo $canonical; ?>"/>
пытаюсь уюрать знак вопроса ))
кто пользуется твитером знает зачем это, пытаюсь склеить ссылки которые генерирует твитер подставляя в адрес свои значения - тоже ведь дубли которые создаются не движком зато индексируются быстрее настоящих адресов...
У кого есть идеи подсказывайте - не поддается гадина и пишут что в htaccess не обработать знак вопроса, но думаю выход должен быть)
301 редирект всего на "с www" так будет?
Вообще имеет значение "с www" "без www" или важен только клей? Если имеет, то в каких случаях надо "с www" а в каких "без www"?
Спасибо!
Мне не нравится с www так как по логике это домен следующего уровня) поэтому с самого начала отбрасываю www.
Хотя яша и гоша решили что им уютней с www) а вот контакт решил без)
В общем выбирать вам!
редирек правильно, хотя может и не правильно) но работает)
И, уж позвольте, ещё вопрос:
указанные выше правила, клеят страницы со слешем и без? Вот мне, похоже, надо чтоб слеш присутствовал.
Спасибо!
Главное чтобы страницы были уникальны и не было дублей! все остальное предрассудки, имхо)
1.С чего вы взяли, что я говорю о сайте на InstantCMS?
2.Всё же страницы со слешем и без оного - это дубли и это, если уж не помешает индексации, то вес страицы разделит. Или я чего не понял из вшего мастер-класса?
Спасибо!
Большой брат Google выдаёт в поиске главную вот так: www.kurs.cv.ua/
Если правильно понял записи выше, надо на неё и делать перенос.
Спасибо!
да и обсуждаем .htaccess для инстанта, а у каждого движка свои нюансы!)
.../forum/thread119-17.html?utm_source=twitterfeed&utm_medium=twitter
я что не придумаю, оно как то странно работает) проверяю, закидываю на хос, все отлично, перепроверяю везде, иду обкурить это дело, возвращаюсь, проверяю - не пашет)))
уже 3 раза так)))
Спасибо!
pivua) , поучитесь
Получилась такая вот хата для параноиков)))
Устроил себе выходной,взял пива,расслабился...
На тему хатацесс вот несколько ненужного (кому как)))копипаста)
Удачи ))
Ребят давайте писать именно по закрытию дублей!!!)
.htaccess велик и могуч и писать про него можно много) А вот тема была создана именно для обсуждения закрытия дублей с применением 301 редиректа и именно для инстанта!!!
в общем вопрос пока остался:
зы: а решение было сразу) просто не хотел сразу выкладывать)
но каноникал лучше - применяйте его)
Пример, ссылка редактирования сообщения имеет вид /forum/editpost53-1.html, при нажатии она преобразовывается в /forum/editpost53.html и выдает 404 ошибку
Попробуйте что-то вроде такого добавить
Вместо