Как правильно убрать дубли в Joom!Fish

12
D
На сайте с 28.06.2008
Offline
1104
2086

Есть компонент перевод сайта на разные языки Joom!Fish для Джумлы. Так вот когда он установлен у ссылок появляются дополнительные вставки типа

.../ru/... и .../en/... С en понятно, а вот с ру проблема, ибо у все страниц теперь доступны два варианта с /ru/ и без него.

Как правильно убрать дубли? Пробовал настроить редирект убирающий /ru/ из ссылок - не получилось :(

gormarket
На сайте с 29.12.2010
Offline
47
#1

добавьте в htaccess в корне сайта


RewriteEngine On
RewriteBase /

RewriteRule ^(.*)/ru/(.*)$ $1/$2 [R=301,L]

(если первые 2 строчки уже есть в htaccess, еще раз добавлять не нужно)

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
D
На сайте с 28.06.2008
Offline
1104
#2
gormarket:
добавьте в htaccess в корне сайта

RewriteEngine On
RewriteBase /

RewriteRule ^(.*)/ru/(.*)$ $1/$2 [R=301,L]

(если первые 2 строчки уже есть в htaccess, еще раз добавлять не нужно)

Добавил, но к сожалению не помогло, /ru/ из адресов не пропадает...

gormarket
На сайте с 29.12.2010
Offline
47
#3

а так попробуйте:


RewriteRule ^(.*)ru/(.*)$ $1/$2 [R=301,L]

для адреса типа

http://site.ru/ru/index.php

первый вариант действительно не работает

он работает для адресов, если в них перед "/ru/" есть папка

http://site.ru/folder/ru/index.php

D
На сайте с 28.06.2008
Offline
1104
#4

К сожалению тоже не работает, даже http://site.ru/ru/ не перекидывает на http://site.ru/

может это Жумфиш перехватывает редирект? Может вообще такое быть?

gormarket
На сайте с 29.12.2010
Offline
47
#5

а http://site.ru/ у Вас нормально отображается? (не перебрасывает на http://site.ru/ru/ ?)

если нормально, то можно попробовать добавить флаг PT


RewriteRule ^(.*)ru/(.*)$ $1/$2 [R=301,L,PT]

Он нужен, если используются кроме mod_rewrite еще и другие трансляторы "URI-имя файла" (иначе они не видят результатов работы RewriteRule и обрабатывают исходный URI)

не знаю что такое Жумфиш, но вдруг поможет

D
На сайте с 28.06.2008
Offline
1104
#6

http://site.ru/ отображается нормально, флаг РТ тоже не сработал :(

gormarket
На сайте с 29.12.2010
Offline
47
#7

Ну тогда последнее, что могу предположить и посоветовать:

в htaccess возможно есть правила которые преобразуют адрес, не позволяя сделать редирект

попробуйте добавить в htaccess в корне сайта перед первыми имеющимися командами RewriteRule или Redirect следующий код

(сразу после

RewriteEngine On

RewriteBase /)


RewriteCond %{ENV:REDIRECT_RWR} ^yes$
RewriteRule .* - [L]

RewriteRule ^(.*)ru/(.*)$ $1/$2 [R=301,L,E=RWR:yes]

третья строчка делает 301 редирект на адрес без "/ru/" и устанавливает переменную "RWR"

а первые две строки делают выход из преобразований, если переменная "RWR" есть.

D
На сайте с 28.06.2008
Offline
1104
#8

Большое спасибо, это сработало, кроме одного единственного варианта

http://site.ru/ru (без слеша на конце)

FerrumLogic
На сайте с 02.11.2009
Offline
37
#9

В плагине System - Jfrouter уберите префикс SEF "ru".

Стыдить лжеца, шутить над дураком и спорить с женщиной — все то же, Что черпать воду решетом: От сих троих избавь нас, Боже!... (с)Лермонтов М. Ю
gormarket
На сайте с 29.12.2010
Offline
47
#10

чтоб обрабатывалось и

http://site.ru/ru

сделайте так


RewriteCond %{ENV:REDIRECT_RWR} ^yes$
RewriteRule .* - [L]

RewriteRule ^(.*)ru/(.*)$ $1/$2 [R=301,L,E=RWR:yes]
RewriteRule ^ru$ http://%{HTTP_HOST}/ [R=301,L,E=RWR:yes]
12

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