Убрать дубли страниц в htaccess

12
stik.name
На сайте с 21.03.2010
Offline
80
10108

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

Нужно реализовать редирект со страниц:

http://domain.tld/index.php?

http://domain.tld/index.php?любой параметр
http://domain.tld/?
http://domain.tld/?любой параметр

на

http://domain.tld/

Всё остальное сам сделал, а вот непосредственно такие варианты не получается убрать.

rel=canonical есть, но хочется эти дубли совсем убрать.

Спасибо.

http://stik.name (http://stik.name) - Think different
V
На сайте с 03.12.2007
Offline
94
#1

Если на сайте нет страниц с index.php, можете вообще его убрать:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://domain.tld/ [R=301,L]
stik.name
На сайте с 21.03.2010
Offline
80
#2

Проблема в вопросительном знаке в адресе - ?

Я же написал что всё остальное я убрал.

iren K
На сайте с 28.12.2008
Offline
222
#3
stik.name:
хочется эти дубли совсем убрать.

так моня

Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} ^domain.tld

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

RewriteRule ^index\.html$ http://www.domain.tld/ [R=301,L]

c уважением Iren
stik.name
На сайте с 21.03.2010
Offline
80
#4

Ребята, у вас всё не то решение. Нужно редирект со страниц с ? знаком именно с таких страниц как у меня в примере, на главную страницу без параметров.

V
На сайте с 03.12.2007
Offline
94
#5

RewriteCond %{QUERY_STRING} ^.+$

RewriteCond %{REQUEST_URI} ^/$

RewriteRule ^(.*)$ http://www.site.ru/? [R=301,L]

stik.name
На сайте с 21.03.2010
Offline
80
#6
vavenko:
RewriteCond %{QUERY_STRING} ^.+$
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://www.site.ru/? [R=301,L]

Спасибо большое, это почти то что нужно. Но не делается редирект с domain.tld/? на domain.tld/

[Удален]
#7
stik.name:
Но не делается редирект с domain.tld/? на domain.tld/

У вас шо есть такой адрес: domain.tld/? ???

V
На сайте с 03.12.2007
Offline
94
#8

можно обойтись одной строчкой в .htaccess

RewriteRule ^index.php http://www.site.ru/ [L,QSA,R=301]

Тогда при пустых параметрах не будет знак вопроса в конце.

stik.name
На сайте с 21.03.2010
Offline
80
#9

У меня есть сайты на которых яндекс и гугл умудрились добавить в индекс главную с ? и без.

Это не реализуемо средствами htaccess ?

iren K
На сайте с 28.12.2008
Offline
222
#10
stik.name:

Это не реализуемо средствами htaccess ?

как вариант можете попробовать отключить session.use_trans_sid по причине вмешательства PHPSESSID в линк при старте сессии:

php_flag session.use_only_cookies On

php_flag session.use_trans_sid Off

12

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