Jump to content
Sign in to follow this  
alinalessioYandex

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

Recommended Posts

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

 

Кроме домена с 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] 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Не нашел в вашем коде имена домена. Похоже это какой-то универсальный вариант. Было бы здорово, если бы работал. Но у меня не сработало. Версия 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]

Share this post


Link to post
Share on other sites

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

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

 

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

Т.е.

www.oldsite.ru

www.newsite.ru

oldsite.ru

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

Т.е.

www.oldsite.ru

www.newsite.ru

oldsite.ru

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.