Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Возможные ошибки при настройке редиректа (301) с "без www" на "www" или обратно


Recommended Posts

Решил создать данную тему, что бы отделить зерна от плевел и постараться описать (может и односторонне конечно) какие ошибки могут возникнуть после настройки редиректа (301) и как их устранить.

Такой "букет" проблем возник у меня, а так как я не пользуюсь каким-то уникальным движком магазина (ocStore Version 0.2.0,) то такие проблемы могут возникнуть и у других. А так как я их уже решил, то почему бы не поделиться с остальными.

Прежде всего хочу ОГРОМНЕЙШЕЕ спасибо сказать уважаемому Yesvik за помощь в их решении и проявленное терпение :)

Предыстория.

Прочитал про склейку зеркал и решил, что я то просто без этого жить не смогу. Сказано - сделано.

В файле robots.txt в окончание строк вписал :

Host: www.мой сайт.ru
Sitemap: http-~~-//www.мой сайт.ru/sitemap.xml

т.е. прописал какое зеркало яндексовый паучек-зеркальщик должен посчитать главным и где находится карта сайта(более подробную информацию можно посмотреть на сайте самого яндекса в разделе вебмастер - помощь (http://help.yandex.ru/webmaster/?id=995297. Там же можно посмотреть, как правильно использовать robots.txt)

Приводить текст своего robots.txt не буду, взял за аналог то, что предложил уважаемый Smallbear (https://opencartforum.com/topic/3983-внутреня-оптимизация-сайта-на-opencart/)

------------

Далее начал править файл .htaccess на предмет редиректа (301)с сайта "без www" на сайт с www.

это делается путем замены стандартной записи:

# Необходимо для ЧПУ.

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

на запись:

# Необходимо для ЧПУ.

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^$ [NC]

RewriteCond %{HTTP_HOST} !^www\. [NC]

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

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

В настройках админ панели своего сайта в разделе "настройки" - "общие" в строке "Адрес магазина (URL):" прописывается www.мой сайт.ru

Таким образом мы произвели настройку редиректа сайта с "без www" на сайт "с www"

После этого все должно было бы заработать как положено, но вот у меня (и не только у меня кстати) не заработало.

И так нарисовалась проблема - не мог зайти в админку сайта. Ошибок не было, просто не заходил в админку и все.

было решено переделать редирект наоборот, т.е. с сайта "с www" на сайт "без www"

Были внесены обратные переделки в файл robots.txt , а в файл .htaccess вместо стокового кода был вписан код:

# Необходимо для ЧПУ.

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^$ [NC]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

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

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

Проверил - в админку входит. Отлично, значит все удалось! Но не тут-то было.

На сайт магазина не мог зайти не один зарегистрированный пользователь а новые не могли зарегистрироваться. :(

Данная проблема решилась просто - нужно было обязательно изменить на "без www" "Адрес магазина (URL):"

На этом в принципе можно было бы и успокоиться, т.к. редирект был настроен, правда не так как хотелось изначально.

Смущало меня то, что при добавлении на яндекс моего сайта "с www" при обращении к нему проходила переадресация на сайт "без www" (как бы так и положено, раз была такая переадресация настроена), Но смущало меня больше то, что при попытке добавить на яндекс еще и сайт "без www" я получал ошибку индексации "Индексирование сайта невозможно из-за ошибок при попытке определить IP-адрес сайта по его имени (с помощью запроса к DNS-серверу)." Т.е. могу только предположить, что раз настроен редирект на сайт "без www" то и яндексу бы надо указывать сайт "без www", но получается что он его не мог проиндексировать.

Обращение в службу ТП моего хостинга результатов не дали. Меня заверили что у них все настроено нормально.

-----------------

Значит надо было решить проблему с отказом входа в админку при редиректе с "без www" на "www"

Как оказалось проблема всей этой карусели была в том, что почему-то админка "была установлена" по адресу "без www" т.е. так: http://мой сайт.ru/admin и простыми способами вписать туда www мне не представлялось возможным, тупо из-за отсутствия знаний в этой области.

Эта проблема решается следующим образом?

Помимо упомянутых выше настроек редиректа на "www" необходимо внести соответствующие изменения в файл admin\config.php (в некоторых случаях и в корневой файл config.php)

Откроете файл и сами поймете что и куда вносить, ну а для тех кто не поймет, смотрим тут:

имеем

// HTTP

define('HTTP_SERVER', 'http://мой сайт.ru/admin/');

define('HTTP_CATALOG', 'http://мой сайт.ru/');

define('HTTP_IMAGE', 'http://мой сайт.ru/image/');

// HTTPS

define('HTTPS_SERVER', 'http://мой сайт.ru/admin/');

define('HTTPS_IMAGE', 'http://мой сайт.ru/image/');

заменяем на:

// HTTP

define('HTTP_SERVER', 'http://www.мой сайт.ru/admin/');

define('HTTP_CATALOG', 'http://www.мой сайт.ru/');

define('HTTP_IMAGE', 'http://www.мой сайт.ru/image/');

// HTTPS

define('HTTPS_SERVER', 'http://www.мой сайт.ru/admin/');

define('HTTPS_IMAGE', 'http://www.мой сайт.ru/image/');

В общем-то на этом и все. Если все сделали правильно все будет работать как надо.

P.S. описанная проблема с ошибкой индексации сайта "без www" наблюдалась разумеется на вновь добавляемом для индексации сайте.

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

Надеюсь моя статейка кому-то окажется полезной и избавит от нервотрепки при возникновении подобных проблем. Все удачи.

P.S.S. вся полезная информация по кодам была взята отсюда https://opencartforum.com/topic/2285-robotstxt/page__view__findpost__p__29601

Змінено користувачем shpakov
  • +1 3
Надіслати
Поділитися на інших сайтах


Статья интересная и полезная. А я просто добавил в файл .htaccess вот это

RewriteEngine On
 RewriteCond %{HTTP_HOST} ^sait.ru
 RewriteRule (.*) http://www.sait.ru/$1 [R=301,L]
и всё работает. Все страницы грузятся с www.
Надіслати
Поділитися на інших сайтах

Можно вручную - но это извращение :)

Можно средствами самого opencarta Но вроде народ не советует.

Можно при помощи онлайновых генераторов.

Я например пользуюсь программой a1 sitemap generator. Вроде как хорошую карту делает.

Надіслати
Поділитися на інших сайтах


а что потом с ней сделать? кинуть в корень сайта?

и как часто её надо перегенерировать? только когда добавляется какой-то глобальный подпункт?

и почему эта программа? нет разницы в карте сайта для гугла и яндекса? мне просто позиции в яндексе в тысячи раз важнее гугла

Надіслати
Поділитися на інших сайтах


Ага, в корень кидайте.

Думаю если что-то добавили, то можно и переделать карту. Это занимает 3 секунды :)

Почему эта? не знаю, воспользуйтесь любой другой. Просто про эту неоднократно упоминали на этом форуме, вот я ее и поставил.

Разницы в карте для поисковиков нет. Вы ее откройте и посмотрите что там есть :) Там образно говоря "Дерево сайта".

Надіслати
Поділитися на інших сайтах


  • 3 years later...

Решил создать данную тему, что бы отделить зерна от плевел и постараться описать (может и односторонне конечно) какие ошибки могут возникнуть после настройки редиректа (301) и как их устранить.

 Спасибо огромное! Столкнулась с этой проблемой. Статья помогла!

Надіслати
Поділитися на інших сайтах


  • 1 year later...

Спасибо огромное))Очень помогли. Только у меня еще и модули все перестали работать. После внесения изменений в файлы config.php всё отлично заработало. :eek:  :eek:  :eek:

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.