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

...отправка со страницы происходит но данные не сохраняются, то скорее всего в .htaccess стоит проблемный редирект...
Значит htaccess.
Что делал- прятал shop, убирал слеши в конце урла. Вроде всё пробовал вернуть взад —не получается. А старый забыл сохранить
 
А старый забыл сохранить

Не уверен что оригинал, но очень близко.

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]
 
Не уверен что оригинал, но очень близко.

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]
Проблема оказалась в строке
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^product/(.*)/$ /product/$1 [R=301,L] это я пытался слеш на конце убрать (не знаю, правильно или нет)
Может его наоборот добавить, на хабре некоторые склоняются к тому, что слеш нужен.
Только мои попытки добавить слеш не работают почему-то
 
Проблема оказалась в строке
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^product/(.*)/$ /product/$1 [R=301,L] это я пытался слеш на конце убрать (не знаю, правильно или нет)
Может его наоборот добавить, на хабре некоторые склоняются к тому, что слеш нужен.
Только мои попытки добавить слеш не работают почему-то
Возможно, что если убрать слеш на конце, то обработчик получивший "(.*)/" вместо "(.*)" попросту не знал такого модуля и не проверял на лишние "/".
 
Интересно, а как поисковики воспримут robots.txt со строчками:
Disallow: /*
Allow: /*/
Если адекватно, то проблема дублей страниц без "/" решается этими двумя строчками.
 
Интересно, а как поисковики воспримут robots.txt со строчками:
Disallow: /*
Allow: /*/
Если адекватно, то проблема дублей страниц без "/" решается этими двумя строчками.
По логике должно работать. На практике нужно проверять. Но что-то мне подсказывает, что редирект надежнее чем 2 строчки в robots.txt :)
 
Если верить Яндекс.Вебмастеру, работает такое сочетание:
Disallow: /*/*
Disallow: /auxpage
Allow: /*/*/
Allow: /auxpage*/
Результаты работы на скриншоте
 

Вложения

  • 000.JPG
    000.JPG
    142,6 KB · Просмотры: 31
Назад
Сверху