Как убрать дубликаты страниц

E
На сайте с 02.10.2008
Offline
3
1204

Как с помощью мод_реврайта можно убрать дубли страниц?

На сайте есть дубли двух типов:

http://site.ru/catalog/

http://site.ru/catalog/index.php

тут нужно чтобы отдавалось только http://site.ru/catalog/ без index.php, чтобы вообще таких страниц не было.

А второй тип дублей образуется из-за сессий:

http://site.ru/news/detail.php?ID=12345

http://site.ru/news/detail.php?ID=123450&PHPSESSID=bd5638a1b318286501058fc27fca5785

тут нужно убрать урл с сессией, чтобы отдавался только урл с ID новости.

Заранее спасибо.

Ivan K
На сайте с 24.03.2008
Offline
125
#1
Eehoo:
http://site.ru/catalog/
http://site.ru/catalog/index.php

тут нужно чтобы отдавалось только http://site.ru/catalog/ без index.php, чтобы вообще таких страниц не было.

/ru/forum/comment/2858996 - тут почитайте

E
На сайте с 02.10.2008
Offline
3
#2

Там как я понял речь идёт только об одной странице - главной:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.вашсайт.ru/ [R=301,L]

А у меня полно разных каталогов с разными названиями и все имеют дубли с index.php

Ну и плюс в новостях из-за сессий плодятся дубли...

Нужно решение и для любых каталогов и для страниц с сессиями.

Futurman
На сайте с 12.11.2007
Offline
40
#3

Может в роботсе закрыть?

Disallow: /*PHPSESSID*

Но это уже только для ПС.

Dmitry V___v
На сайте с 07.12.2006
Offline
310
#4
Futurman:
Может в роботсе закрыть?
Disallow: /*PHPSESSID*
Но это уже только для ПС.

ааааафигеть решение 😂

Закрываем все страницы, имеющие в url PHPSESSID

Пацталом.

Pall добавил 27.01.2009 в 16:40

Eehoo:

Нужно решение и для любых каталогов и для страниц с сессиями.

Ну так по примеру прописывайте регулярку под любой каталог...😕 В чем проблема-то?

Создание и ведение кампаний Google/Bing/Twitter/FB Ads под USA, Canada, United Kingdom and Australia ( https://searchengines.guru/ru/forum/1028286 ) + жирный линкбилдинг под бурж ( https://searchengines.guru/ru/forum/1028282 )
E
На сайте с 02.10.2008
Offline
3
#5
Ну так по примеру прописывайте регулярку под любой каталог... В чем проблема-то?

Я не знаю, как это сделать.

Eehoo добавил 28.01.2009 в 13:45

Нашли решение, может быть кому-то понадобится:

RewriteEngine On

RewriteBase /

RewriteRule (^|.*?/)index\.php$ $1 [R=301]

RewriteCond %{QUERY_STRING} ^(.*?)(^|&)PHPSESSID=[^&]*(.*)$

RewriteRule (.*) $1?%1%3 [R=301]

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