Редирект русскоязычных доменов

Статус
Закрыто для дальнейших ответов.

Eskaner88

Новичок
Регистрация
18.10.2015
Сообщения
1
Доброго дня!

Ситуация такая: Я использовал .htaccess для замены url в адресной строке, чтобы склеить синонимы. Вместо "www.mysite.ru" -> "mysite.ru" или "www.mysite.ru/статьи" -> "mysite.ru/статьи".

Однако, когда я попробовал приклеить к сайту домен на кириллице (русскоязычный) "мойсайт.рф", то выходит, что правило в .htaccess заменяет только адреса с вложенными ресурсами типа "мойсайт.рф/статьи" -> "mysite.ru/статьи", а если идёт чисто домен "мойсайт.рф" то ничего не меняется?

В чём может быть дело?


#Options +FollowSymlinks
RewriteEngine On
RewriteBase /

# Fix Apache internal dummy connections from breaking [(site_url)] cache
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

# Домены с кириллицей переведён в punycode
# мойсайт.рф -> xn--80arbjktj.xn--p1ai
RewriteCond %{HTTP_HOST} (xn--80arbjktj.xn--p1ai)
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]
Буду благодарен за совет.
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Попробуй так:
Код:
RewriteCond %{HTTP_HOST} ^xn--80arbjktj.xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]
И попробуй разделить на два условия:
Код:
RewriteCond %{HTTP_HOST} ^xn--80arbjktj.xn--p1ai$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.mysite.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]
Кстати, помимо редиректа [R=301,L] - обязательно пропиши в robots.txt главное зеркало
Код:
Host: mysite.ru
 

miketomlin

Well-Known Member
Регистрация
12.11.2013
Сообщения
101
[OR] и точку в условиях лучше экранировать.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ