[Помощь] Индексация сайта: дубли страниц с / и без

alex3182

Создатель
Регистрация
25 Июл 2011
Сообщения
26
Реакции
2
Заметил с какого то времени рост страниц, только заметил такое. В индексе страницы дубли (что плохо)
Пример: Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся Т.е. с / и без.
Такого правила для robots.txt я не знаю что бы заставить кушать робот страницы только со / в конце строки.... Хелп плиз...
 
1. Ставить правильные ссылки, скорее всего ссылки на внутряки стоят без слеша.
2. Загуглить правило для .htaccess чтобы с без слеша на с слешом редирект был.
 
увы для webasyst это решение не подходит, если включено ЧПУ
Отчего же не подходит? Там показано решение как раз для включенного режима ЧПУ. Обратите внимание на предпоследний комментарий на 1 стр по указанной вам ссылке:
PHP:
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.htm$
RewriteRule (.+) $1/ [R=301,L]
Это не готовое решение, но достаточно для того чтобы вы смогли составить то что вам необходимо.
 
Отчего же не подходит? Там показано решение как раз для включенного режима ЧПУ. Обратите внимание на предпоследний комментарий на 1 стр по указанной вам ссылке:
PHP:
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.htm$
RewriteRule (.+) $1/ [R=301,L]
Это не готовое решение, но достаточно для того чтобы вы смогли составить то что вам необходимо.

я прописывал и то решение и то что выше.
1. Если попробовать удалить / в конце и перезагрузить страницу то он по идее должен добавить /, но / в конце не добавляется.

2. Ссылки становятся вида
 
подскажите как проверить сайт на дубли страниц, есть программа какая то? у меня есть программа которая на уникальность проверяет контент блокируя при этом проверяемый сайт.
 
Приветствую. Нужен совет по htaccess
В уже действующий вписал дополнение, что бы перенаправлять всё на домен без www и без /, так же с ссылок типа shop и shop/ на главную без слеша.
Вроде как всё работает, но прошу знатоков посмотреть- может я что накучкарил или лишнего написал или не в то место воткнул. Мои дополнения выделил синим:

# WebAsyst .htaccess config
AddDefaultCharset UTF-8
DirectoryIndex index.php
RewriteEngine On
#shop
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(imgval.php|wbs_messageserserver.php) published/SC/html/scripts/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(imgval.php|wbs_messageserserver.php|get_file.php) published/SC/html/scripts/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^shop(.*) published/SC/html/scripts/$1&frontend=1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(album|view)/(.*) photos/index.php?q=$1/$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/fullsize/(.*)/(.*) photos/getfullsize.php?filename=$1&hash=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(.+)$ photos/index.php?q=$1 [L,QSA]

#common
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^login/(.*) login/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^installer/(.*) installer/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^published/$ published/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^published
RewriteRule (.*) published/SC/html/scripts/index.php?__furl_path=$1&frontend=1 [QSA]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^Для просмотра ссылки Войди или Зарегистрируйся [NC]
RewriteRule ^(.*)$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index.php$ / [R=301]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^shop$ / [R=301]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^shop/$ / [R=301]

Еще не закрытые дубли нашел:
сайт/shop/product/такой-то = сайт/product/такой-то
и еще /product/такой-то = /product/такой-то/
как эти перенаправить?
 
Еще не закрытые дубли нашел:
сайт/shop/product/такой-то = сайт/product/такой-то
и еще /product/такой-то = /product/такой-то/
как эти перенаправить?


По идее так, но нужно проверять
Код:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^shop/(.*)/?$ /$1 [R=301,L]
#/? - или есть или нет
 
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^product/(.*)/$ /product/$1 [R=301,L]
#это если все products должны быть без "/" на конце
 
Вроде не работает или я не то сделал
Вот эти 2
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^shop$ / [R=301]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^shop/$ / [R=301]
Удаляют shop и shop/
Но если только после них нет ничего больше, а в случае урла shop/product/... и shop/category/ долбанный shop остается в урле, причем из урла сайт/shop/search/?tag= shop выпадает и редиректится на сайт/search/?tag=
 
Назад
Сверху