Перейти к содержанию
alinalessioYandex

[Решено] Как настроить .htaccess на основное зеркало, если несоклько доменов?

Рекомендуемые сообщения

Как известно, очень важно настроить главное зеркало, чтобы поисковики хорошо относились к сайту.

 

Кроме домена с www и без www в OpenCart существуют еще два зеркала.

 

1. site.ru

2. site.ru/index.php?route=common/home

 

Итого получается аж четыре зеркала, если учесть тоже самое с www.

 

В этой статье дается пример, как переадресовать с www на без www.

 

У меня вопрос, как переадресовать, если самих доменов два, не считая что у каждого еще по четыре зеркала?

 

Так?

# Редирект c www на без www 
	RewriteCond %{HTTP_HOST} ^www.oldsite.ru 
	RewriteRule ^(.*)$ http://newsite.ru/$1 [R=301,L]
 
	RewriteCond %{HTTP_HOST} ^oldsite.ru 
	RewriteRule ^(.*)$ http://newsite.ru/$1 [R=301,L] 

	RewriteCond %{HTTP_HOST} ^www.newsite.ru 
	RewriteRule ^(.*)$ http://newsite.ru/$1 [R=301,L] 

# Редирект для главной (с /index.php на /) 
	RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ 
	RewriteRule ^index\.html$ / [R=301,L] 
	RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
	RewriteRule ^index\.php$ / [R=301,L] 

Если ошибся, поправьте пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не нашел в вашем коде имена домена. Похоже это какой-то универсальный вариант. Было бы здорово, если бы работал. Но у меня не сработало. Версия 1.5.5.1.2

А вариант, который я привел правильный? Он-то работает. Правда /index.php?route=common/home все равно не пропало. Так и болтается после домена. Но сайт работает.

Так правильный код, который я привел в первом посте или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы попробуйте вариант, который вам дали, его запилить, быстрее чем новое сообщение постить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не нашел в вашем коде имена домена. Похоже это какой-то универсальный вариант. Было бы здорово, если бы работал. Но у меня не сработало. Версия 1.5.5.1.2

А вариант, который я привел правильный? Он-то работает. Правда /index.php?route=common/home все равно не пропало. Так и болтается после домена. Но сайт работает.

Так правильный код, который я привел в первом посте или нет?

 

100% должно работать, в том числе и на 1.5.5.1.2. Скорее всего что-то неправильно сделали.

В данном решении не нужно прописывать домен и оно решает проблемы с вышеперечисленными дублями.

 

Вот полный htaccess:

Options +FollowSymlinks
Options -Indexes
<FilesMatch "\.(tpl|ini|log)">
Order deny,allow
Deny from all
</FilesMatch>
<FilesMatch "error.(txt)$">
Order Allow,Deny
Deny from all
</FilesMatch>

RewriteEngine On
RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^yandexmarket.xml$ index.php?route=feed/yandex_market [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ 
RewriteRule ^index\.html$ / [R=301,L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://%{HTTP_HOST}? [R=301,L]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, действительно, в первый раз видимо что-то не так сделал.

Сейчас еще раз попробовал и все работает.

 

Только скажите пожалуйста для уверенности, этот способ подходит, даже если у меня два домена?

Т.е.

www.oldsite.ru

www.newsite.ru

oldsite.ru

 

будут переадресовываться на newsite.ru?

 

Просто странно, что никакого упоминания о старом домене, но все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, действительно, в первый раз видимо что-то не так сделал.

Сейчас еще раз попробовал и все работает.

 

Только скажите пожалуйста для уверенности, этот способ подходит, даже если у меня два домена?

Т.е.

www.oldsite.ru

www.newsite.ru

oldsite.ru

 

будут переадресовываться на newsite.ru?

 

Просто странно, что никакого упоминания о старом домене, но все работает.

 

Да, с двумя тоже работать будет, будет идти редирект на тот домен, который прописан в конфигах (без www)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно ли этим кодом переадресовать не просто на домен без www, а на одну конкретную страницу магазина? Например на конкретную категорию? Чтобы при попадании на главную страницу, мы видели категорию.

Если можно, то как модифицировать этот код, чтобы это реализовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как дополнить эту конструкцию, чтобы и с кириллических доменов переадресовывалось на основной?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.