настроить .htaccess

Diversant
На сайте с 29.03.2006
Offline
322
543

Помогите настроить

Нужно чтобы не плодились дубли морды и других разделов

http://www.site.ru/index.php?dubl1

http://www.site.ru/index.php?dubl2

http://www.site.ru/index.php?dubl3

а отдавалась бы 404 страница

причем на сайте есть вот такие нужные странички

http://www.site.ru/index.php?categoryID=4

Как ?

---------- Добавлено 01.08.2012 в 18:01 ----------

Актуально, есть спецы ?

IL
На сайте с 20.04.2007
Offline
435
#1

Зависит от того, как определять, разрешённый ли dubl...

Если в dubl.. нет знака равно - редиректим на корень/

RewriteCond %{QUERY_STRING} !.\=
RewriteRule index.php /? [R=301,L]

Можно явно указать только разрешённые QUERY_STRING - остальное всё редиректить на главную.

RewriteCond %{QUERY_STRING} !^(categoryID|pageId)
RewriteRule index.php /? [R=301,L]

Оба метода - для index.php

---------- Post added 01-08-2012 at 18:12 ----------

В смысле, если нужно для URL-ов вида site.ru/?categoryId=3

вторую строчку каждого варианта заменить на

RewriteRule ^$ /? [R=301,L]
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Diversant
На сайте с 29.03.2006
Offline
322
#2
ivan-lev:
Зависит от того, как определять, разрешённый ли dubl...
Если в dubl.. нет знака равно - редиректим на корень/
RewriteCond %{QUERY_STRING} !.\=

RewriteRule index.php /? [R=301,L]


Можно явно указать только разрешённые QUERY_STRING - остальное всё редиректить на главную.
RewriteCond %{QUERY_STRING} !^(categoryID|pageId)

RewriteRule index.php /? [R=301,L]


Оба метода - для index.php

---------- Post added 01-08-2012 at 18:12 ----------

В смысле, если нужно для URL-ов вида site.ru/?categoryId=3
вторую строчку каждого варианта заменить на
RewriteRule ^$ /? [R=301,L]

По первому а если дубли будут вот такими

index.php?productID=1906=12345

т.е. дубль вот этой страницы

index.php?productID=1906

то первый вариант уже не прокатывает так ?

IL
На сайте с 20.04.2007
Offline
435
#3

index.php?productID=1906=12345 лечится

RewriteCond %{QUERY_STRING} ^productID=(\d+)\D
RewriteRule ^index.php$ /index.php?productID=%1 [R=301,L]
Diversant
На сайте с 29.03.2006
Offline
322
#4

По посту №2 по первому варианту идет редирект на главную без www и тупо сайт не открывается :(

siv1987
На сайте с 02.04.2009
Offline
427
#5

RewriteCond %{QUERY_STRING} !^$

RewriteCond %{QUERY_STRING} !.\=

RewriteRule index.php /? [R=301,L]

Diversant
На сайте с 29.03.2006
Offline
322
#6

siv1987, а можете разъяснить каждую строчку ?

siv1987
На сайте с 02.04.2009
Offline
427
#7
а можете разъяснить каждую строчку ?
ivan-lev:
Если в dubl.. нет знака равно - редиректим на корень/

первые две - условия, по которым сработает третья (редирект).

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