По просьбе 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; ?>"/>
Реклама #
dontstop 12 лет назад #
Lana 12 лет назад #
soxom 12 лет назад #
Gopok23 12 лет назад #
reload 12 лет назад #
пытаюсь уюрать знак вопроса ))
кто пользуется твитером знает зачем это, пытаюсь склеить ссылки которые генерирует твитер подставляя в адрес свои значения - тоже ведь дубли которые создаются не движком зато индексируются быстрее настоящих адресов...
У кого есть идеи подсказывайте - не поддается гадина и пишут что в htaccess не обработать знак вопроса, но думаю выход должен быть)
Олег Васильевич я 12 лет назад #
reload 12 лет назад #
Мне не нравится с www так как по логике это домен следующего уровня) поэтому с самого начала отбрасываю www.
Хотя яша и гоша решили что им уютней с www) а вот контакт решил без)
В общем выбирать вам!
редирек правильно, хотя может и не правильно) но работает)
picaboo 12 лет назад #
soxom 12 лет назад #
Олег Васильевич я 12 лет назад #
reload 12 лет назад #
Главное чтобы страницы были уникальны и не было дублей! все остальное предрассудки, имхо)
soxom 12 лет назад #
Олег Васильевич я 12 лет назад #
Олег Васильевич я 12 лет назад #
reload 12 лет назад #
да и обсуждаем .htaccess для инстанта, а у каждого движка свои нюансы!)
reload 12 лет назад #
reload 12 лет назад #
.../forum/thread119-17.html?utm_source=twitterfeed&utm_medium=twitter
я что не придумаю, оно как то странно работает) проверяю, закидываю на хос, все отлично, перепроверяю везде, иду обкурить это дело, возвращаюсь, проверяю - не пашет)))
уже 3 раза так)))
artlab 12 лет назад #
Олег Васильевич я 12 лет назад #
artlab 12 лет назад #
reload 12 лет назад #
artlab 12 лет назад #
Получилась такая вот хата для параноиков)))
artlab 12 лет назад #
Устроил себе выходной,взял пива,расслабился...
На тему хатацесс вот несколько ненужного (кому как)))копипаста)
Удачи ))
reload 12 лет назад #
Ребят давайте писать именно по закрытию дублей!!!)
.htaccess велик и могуч и писать про него можно много) А вот тема была создана именно для обсуждения закрытия дублей с применением 301 редиректа и именно для инстанта!!!
в общем вопрос пока остался:
Джехутимери 12 лет назад #
reload 12 лет назад #
зы: а решение было сразу) просто не хотел сразу выкладывать)
но каноникал лучше - применяйте его)
reload 12 лет назад #
Endroid 11 лет назад #
IRIP 7 лет назад #
mk727 12 лет назад #
Endroid 11 лет назад #
Пример, ссылка редактирования сообщения имеет вид /forum/editpost53-1.html, при нажатии она преобразовывается в /forum/editpost53.html и выдает 404 ошибку
reload 11 лет назад #
Попробуйте что-то вроде такого добавить
Endroid 11 лет назад #
Endroid 11 лет назад #
Вместо
Батосай 10 лет назад #
sindoyun 8 лет назад #
Endroid 8 лет назад #