Дубли страниц заглавными буквами

I
На сайте с 22.10.2012
Offline
80
539

В яндекс вебмастере постоянно появляются дубли и меняют друг друга в индексе с вариациями написания строчными и заглавными буквами. например: site.ru/brand/Apple и site.ru/brand/apple

Оба адреса ведут на одну страницу естественно а яндекс их видит как разные и лепит дубли...

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

rel canonical битрикс не прописывает сам на себя, только если страница пагинации есть или еще какой-то параметр...

Единственный хостинг, который предоставляет защиту от DDoS вплоть до L7, а не L3-L4 всего за 450 руб: https://adminvps.ru/vps/vps_russia.php?aff=17004
Vladimir SEO
На сайте с 19.10.2011
Online
1355
#1

Редирект естественно

ᐈ Лучшая проверка позиций http://allpositions.ru/redirect/10965 ᐈПродвижение коммерческих сайтов https://kulinenko.com/
I
На сайте с 22.10.2012
Offline
80
#2
xVOVAx:
Редирект естественно

Логика в этом есть, вопрос как, если этих страниц сотни, а заглавная буква может всплыть не только первой но и посередине слова... возможно есть какие-то регулярки...

Vladimir SEO
На сайте с 19.10.2011
Online
1355
#3
iSmel:
Логика в этом есть, вопрос как, если этих страниц сотни, а заглавная буква может всплыть не только первой но и посередине слова... возможно есть какие-то регулярки...

Есть , мне программисты мои делают такое для старых сайтов. Редирект по регистру

богоносец
На сайте с 30.01.2007
Offline
712
#4

А завтра вылезет проблема с произвольными параметрами.

Этот форум отвечает 404 на смену регистра буквы урла (это разные урлы).

А хочется заплатку...

про одну из них лет 10 назад ответило

В настоящий момент из страниц, url которых различается только в регистре, в результатах поиска может участвовать только одна из этих страниц. C помощью файла sitemap можно повлиять на URL отображаемой страницы в результатах поиска, указав в нем адрес страницы в требуемом регистре.

С уважением, Платон Щукин
Но правильнее – ответ 404 или 301 на неправильный регистр.

А с разным регистром + разным контентом индексилось нормально.

Hammer8
На сайте с 04.08.2011
Offline
157
#5

iSmel, Это не проблема, если не хотите настраивать Apache, пропишите в htaccess:

RewriteEngine On

RewriteBase /
# If there are caps, set HASCAPS to true and skip next rule
RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]
# Skip this entire section if no uppercase letters in requested URL
RewriteRule ![A-Z] -
# Replace single occurance of CAP with cap, then process next Rule.
RewriteRule ^([^A]*)A(.*)$ $1a$2
RewriteRule ^([^B]*)B(.*)$ $1b$2
RewriteRule ^([^C]*)C(.*)$ $1c$2
RewriteRule ^([^D]*)D(.*)$ $1d$2
RewriteRule ^([^E]*)E(.*)$ $1e$2
RewriteRule ^([^F]*)F(.*)$ $1f$2
RewriteRule ^([^G]*)G(.*)$ $1g$2
RewriteRule ^([^H]*)H(.*)$ $1h$2
RewriteRule ^([^I]*)I(.*)$ $1i$2
RewriteRule ^([^J]*)J(.*)$ $1j$2
RewriteRule ^([^K]*)K(.*)$ $1k$2
RewriteRule ^([^L]*)L(.*)$ $1l$2
RewriteRule ^([^M]*)M(.*)$ $1m$2
RewriteRule ^([^N]*)N(.*)$ $1n$2
RewriteRule ^([^O]*)O(.*)$ $1o$2
RewriteRule ^([^P]*)P(.*)$ $1p$2
RewriteRule ^([^Q]*)Q(.*)$ $1q$2
RewriteRule ^([^R]*)R(.*)$ $1r$2
RewriteRule ^([^S]*)S(.*)$ $1s$2
RewriteRule ^([^T]*)T(.*)$ $1t$2
RewriteRule ^([^U]*)U(.*)$ $1u$2
RewriteRule ^([^V]*)V(.*)$ $1v$2
RewriteRule ^([^W]*)W(.*)$ $1w$2
RewriteRule ^([^X]*)X(.*)$ $1x$2
RewriteRule ^([^Y]*)Y(.*)$ $1y$2
RewriteRule ^([^Z]*)Z(.*)$ $1z$2
# If there are any uppercase letters, restart at very first RewriteRule in file.
RewriteRule [A-Z] - [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 [R=301,L]
Полный спектр услуг по продвижению сайтов (/ru/forum/959217)
I
На сайте с 22.10.2012
Offline
80
#6
Hammer8:
iSmel, Это не проблема, если не хотите настраивать Apache, пропишите в htaccess:

RewriteEngine On

RewriteBase /
# If there are caps, set HASCAPS to true and skip next rule
RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]
# Skip this entire section if no uppercase letters in requested URL
RewriteRule ![A-Z] -
# Replace single occurance of CAP with cap, then process next Rule.
RewriteRule ^([^A]*)A(.*)$ $1a$2
RewriteRule ^([^B]*)B(.*)$ $1b$2
RewriteRule ^([^C]*)C(.*)$ $1c$2
RewriteRule ^([^D]*)D(.*)$ $1d$2
RewriteRule ^([^E]*)E(.*)$ $1e$2
RewriteRule ^([^F]*)F(.*)$ $1f$2
RewriteRule ^([^G]*)G(.*)$ $1g$2
RewriteRule ^([^H]*)H(.*)$ $1h$2
RewriteRule ^([^I]*)I(.*)$ $1i$2
RewriteRule ^([^J]*)J(.*)$ $1j$2
RewriteRule ^([^K]*)K(.*)$ $1k$2
RewriteRule ^([^L]*)L(.*)$ $1l$2
RewriteRule ^([^M]*)M(.*)$ $1m$2
RewriteRule ^([^N]*)N(.*)$ $1n$2
RewriteRule ^([^O]*)O(.*)$ $1o$2
RewriteRule ^([^P]*)P(.*)$ $1p$2
RewriteRule ^([^Q]*)Q(.*)$ $1q$2
RewriteRule ^([^R]*)R(.*)$ $1r$2
RewriteRule ^([^S]*)S(.*)$ $1s$2
RewriteRule ^([^T]*)T(.*)$ $1t$2
RewriteRule ^([^U]*)U(.*)$ $1u$2
RewriteRule ^([^V]*)V(.*)$ $1v$2
RewriteRule ^([^W]*)W(.*)$ $1w$2
RewriteRule ^([^X]*)X(.*)$ $1x$2
RewriteRule ^([^Y]*)Y(.*)$ $1y$2
RewriteRule ^([^Z]*)Z(.*)$ $1z$2
# If there are any uppercase letters, restart at very first RewriteRule in file.
RewriteRule [A-Z] - [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 [R=301,L]

Спасибо!! Завтра потестирую

M
На сайте с 04.12.2013
Offline
202
#7

Мать честная, есть же RewriteMap с int:tolower.

Или программно во фронте что-нить подобное на(ш)кодить, например, как я показал тут (см. фильтр в показанном фрагменте кода). Проверить, как работает этот код можно, например, тут: g09.ru///Articles///My-First-Article/// (только трэйлинг слеши исправляются отдельным фильтром в .htaccess, поэтому может быть более одного редиректа).

---------- Добавлено 17.04.2020 в 12:35 ----------

P.S. Хотя для RewriteMap определен контекст server config, virtual host. Т.е. на шареде, наверное, не прокатит.

Хостинг FOZZY ( https://fozzy.com.ru ) / Выслушаю предложения на домены ( https://u75.ru/domains-for-sale ) / Домены и скрипт для коротких ссылок ( https://u75.ru/domains-for-shortcuts )

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