Редирект страниц без приставки .html на страницы с приставкой .htm

T
На сайте с 14.02.2009
Offline
26
2682

Сайт на joomla 1.7

Есть многоязычность

Часть содержания файла .htaccess:

## Перенаправление всех страниц с www на без www

RewriteCond %{HTTP_HOST} ^www.site.org.ua$ [NC]

RewriteRule ^(.*)$ http://site.org.ua/$1 [R=301,L]

## Удаление дубля главной страницы c index.php

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteRule ^index\.php$ http://site.org.ua [R=301,L]

## Перенаправление всех страниц со / вконце на без него

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !^/en/

RewriteCond %{REQUEST_URI} !^/ua/

RewriteCond %{REQUEST_URI} ^(.+)/$

RewriteRule ^(.+)/$ /$1 [R=301,L]

## Перенаправление всех страниц без html на с html

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !^/en/$

RewriteCond %{REQUEST_URI} !^/ua/$

RewriteCond %{REQUEST_URI} !\.html$

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

Проблема в следующем. При таком содержании все работает за исключением одного момента – переход с главной страницы украинского или английского языка на главною страницу на русском языке не работает.

Т е с страниц mysite.org.ua/en/ и mysite.org.ua/ua/ на страницу mysite.org.ua невозможно перейти.

На других страницах смена языков работает без замечаний.

Если закомментировать часть кода, что отвечает за «Перенаправление всех страниц без html на с html», то все работает нормально, только с дублями.

Подскажите, пожалуйста, как решить эту проблему.

siv1987
На сайте с 02.04.2009
Offline
427
#1

RewriteRule ^(.+)$ /$1.html [R=301,L]

T
На сайте с 14.02.2009
Offline
26
#2
siv1987:
RewriteRule ^(.+)$ /$1.html [R=301,L]

Цикл получается(

Вот этот вариант: "RewriteRule ^([^.]+)$ /$1.html [R=301,L]" работает также как тот, что у меня в файле.

siv1987
На сайте с 02.04.2009
Offline
427
#3
traktoristpetrovich:
Цикл получается(

Вам нужно было заменить вашу строчку на эту. Они идентичны за исключением квантификатора - "+". Хотя правила и написаны немного кривовато, но здесь нет ничего чтобы могло бы вызвать "переход на русском языке не работает". Кстати, а что означает "невозможно перейти", ссылки не нажимаются или что?

T
На сайте с 14.02.2009
Offline
26
#4
siv1987:
Вам нужно было заменить вашу строчку на эту

Точно, извиняюсь. Но работает также как мой вариант - не меняется язык на главной странице

siv1987:
Кстати, а что означает "невозможно перейти", ссылки не нажимаются или что?

Например, нахожусь я на странице site.org.ua/en/, клацаю на иконку смены языка (на ru), в результате происходит обновление страницы и я по прежнему остаюсь на странице site.org.ua/en/ , а надо site.org.ua.

Еще одно, если закомментировать "Перенаправление всех страниц со / вконце на без него", и включить "Перенаправление всех страниц без html на с html", то смена языков на главной странице работает нормально. Но, если ввести урл со слешем в конце, то после слеша будет приставка (может поисковики так не делают?)

Возможно проблема в взаимодействии этих двух директив ("Перенаправление всех страниц со / вконце на без него", "Перенаправление всех страниц без html на с html").

Возможно проблема в джумле.

Возможно вариант: закомментировать "Перенаправление всех страниц со / вконце на без него", и включить "Перенаправление всех страниц без html на с html", вполне достаточен. Т е возможно "Перенаправление всех страниц со / вконце на без него" тут лишнее. Хочу сказать, что где то читал, что поисковики сейчас не воспринимают страницы со / и без него как дубль.

ПС. Огромное спасибо за внимание/помощь

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