Как настроить 301 редирект с верхнего регистра на нижний только для псевдодирректорий (мультиязычный сайт)?

Здравствуйте. Сайт на Joomla 3. в .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] - [S=28]
# 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]

Для URL украинской версии (https://site.ua/proeKTY) сайта всё работает нормально. Но для URL русской версии (https://site.ua/ru/proeKTY) и английской (https://site.ua/en/projeCTS) выдаёт ошибку сервера 500 (Internal Server Error. Ошибка в настройках сайта Вероятнее всего, эта ошибка возникла из-за несовместимых настроек .htaccess).

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

P.S. Это задача из перечня от SEO-специалиста. Лично я бы это не делал, но увы, надо.
  • Вопрос задан
  • 319 просмотров
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
НИКАК! дайте угадаю вам это сеошник предложил?
так вот плюньте ему в физиономию.

Во первых это никак не влияет на сео
Во вторых linux это регистрозависимая ОС в отличие от windows в ней нельзя взять и просто опустить регистр.
если у вас есть файл
Images.jpg
images.jpg
images.JPG
Это совершенно разные файлы на уровне файловой системы.
То же самое с ЧПУ, не факт что ваш движок регисронезависимый, скорее наоборот.
Короче такую шляпу рекомендуют люди которые просто вообще не понимают как работает веб сервер.

ТАк же очень странная шляпа вот это
RewriteRule [A-Z] - [N]
RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 [R=301,L]

Что вы пытались сделать этим?
Вот я пытаюсь каждую строчку хоть как-то понять и не понимаю
RewriteRule [A-Z] - [N] - он и без вас пойдет на следующий раунд, мало того L его не остановит, я уже не говорю о том что тут указана 1 буква верхнего регистра и все то есть например site.ru/S
RewriteCond %{ENV:HASCAPS} TRUE - не понятно зачем это тут вообще
RewriteRule ^/?(.*) /$1 [R=301,L] - GET параметр не является частью урла в принципе и RewriteRule его вообще видеть не умеет !
если вы хотели удалить все гет параметры то делается это как-нибудь так RewriteRule - /$0? [R=301,L]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы