Вернуться   SEO форум - оптимизация и продвижение сайтов > Поисковая оптимизация > Индексация сайта

Важная информация
Индексация сайта - Robots.txt, sitemap (карта сайта), редирект, .htaccess, и т.д. Бан, поисковые фильтры, ранжирование (позиции).

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 29.08.2016, 13:30   #1
 
Аватар для arraga
 
Сообщений: 53
FR (активность): 1,791

Доп. информация
По умолчанию Автор темы Переадресация с http на https

Здравствуйте, уважаемые. Подскажите как правильно прописать в .htaccess код.
До этого там уже было написано для www:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)/index\.html$
RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.96-05-14.ru$ [NC]
RewriteRule ^(.*)$ http://96-05-14.ru/$1 [R=301,L]
</ifModule>

А вчера прикрутил SSL на сайт, порылся в инете, нашел такой код:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]
</ifModule>

Прописал, вроде всё норм, но вот только двойной слеш почему-то и перед и после:
_https://96-05-14.ru//_

Посоветуйте, как правильно прописать в .htaccess код, чтобы и переадресация с www на http и с http на https работала правильно?
arraga вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 29.08.2016, 22:50   #2
 
Аватар для paveldvlip
 
Сообщений: 8
FR (активность): 183

Доп. информация
По умолчанию

RewriteRule ^(.*)$ https://96-05-14.ru$1 [R=301,L]

Видимо, так. Если остальное всё верно.

Что именно нужно сделать?

Сообщение добавлено 29.08.2016 в 23:03

С ввв на без ввв делается так:

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

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.site\.ru$
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Код рабочий. У вас там белиберда какая-то.
paveldvlip вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 29.08.2016, 23:04   #3
 
Аватар для arraga
 
Сообщений: 53
FR (активность): 1,791

Доп. информация
По умолчанию Автор темы

К сожалению этот вариант не подходит.

Цитата:
Сообщение от paveldvlip Посмотреть сообщение
Что именно нужно сделать?
Нужно, чтобы при подключении SSL и прописке кода

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]
</ifModule>

после кода

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)/index\.html$
RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.96-05-14.ru$ [NC]
RewriteRule ^(.*)$ http://96-05-14.ru/$1 [R=301,L]
</ifModule>

сайт открывался только с https с нормальными слешами - например так
https://96-05-14.ru/info/services-rates/

А он открывается так:

https://96-05-14.ru//info/services-rates/

Сообщение добавлено 29.08.2016 в 23:10

Всё, вроде сам разобрался) Я весь код изменил, совместив:

<ifModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^(.*)/index\.html$ RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www.96-05-14.ru$ [NC] RewriteRule ^(.*)$ http://96-05-14.ru/$1 [R=301,L] RewriteCond %{SERVER_PORT} ^80$ [OR] RewriteCond %{HTTP} =on RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L] </ifModule>

Вроде всё как надо работает. Но конечно терзают сомнения, делал-то интуитивно - правильно ли?
arraga вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 29.08.2016, 23:25   #4
 
Аватар для paveldvlip
 
Сообщений: 8
FR (активность): 183

Доп. информация
По умолчанию

Насколько я знаю, переменной {HTTP} нет. Есть только {HTTPS}. Одна из строк избыточна. И если уж редиректить на https, то сразу. А то два редиректа получаются. Как-то так вроде бы:

<ifModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.96-05-14\.ru$ [NC]
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]

RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]

RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
</ifModule>

А ещё лучше:

<ifModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.96-05-14\.ru$ [NC,OR]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]

RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
</ifModule>

Этого должно быть достаточно. Если ничего не попутал))

Сообщение добавлено 29.08.2016 в 23:35

Проверять лучше через проверку ответа сервера, а не через браузер. Браузер кеширует редиректы. F5 не помогает.
paveldvlip вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 29.08.2016, 23:43   #5
 
Аватар для arraga
 
Сообщений: 53
FR (активность): 1,791

Доп. информация
По умолчанию Автор темы

@paveldvlip, для меня это темный лес. я просто соеденил 2 кода в один:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)/index\.html$
RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.96-05-14.ru$ [NC]
RewriteRule ^(.*)$ http://96-05-14.ru/$1 [R=301,L]
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]
</ifModule>

Код работает, ну и ладно. Код я не сам сочинял - я в нем ничего не понимаю, чисто интуиция :-)
arraga вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 29.08.2016, 23:48   #6
 
Аватар для paveldvlip
 
Сообщений: 8
FR (активность): 183

Доп. информация
По умолчанию

Цитата:
Сообщение от arraga Посмотреть сообщение
@paveldvlip, для меня это темный лес. я просто соеденил 2 кода в один:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)/index\.html$
RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.96-05-14.ru$ [NC]
RewriteRule ^(.*)$ http://96-05-14.ru/$1 [R=301,L]
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]
</ifModule>

Код работает, ну и ладно. Код я не сам сочинял - я в нем ничего не понимаю, чисто интуиция :-)
С таким редиректом нужно быть осторожным. Оттестировать его нужно от и до. Во всех вариантах развития событий. Потом можно огрести проблем таких, что всё упадёт и будет подниматься месяцами после исправления ситуации.
paveldvlip вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 30.08.2016, 00:20   #7
 
Аватар для arraga
 
Сообщений: 53
FR (активность): 1,791

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от paveldvlip Посмотреть сообщение
С таким редиректом нужно быть осторожным. Оттестировать его нужно от и до. Во всех вариантах развития событий. Потом можно огрести проблем таких, что всё упадёт и будет подниматься месяцами после исправления ситуации.
Без конкретики это звучит как детская пугалка - "закрывайте все окна и двери, катится гроб на колёсиках"
arraga вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 30.08.2016, 00:41   #8
 
Аватар для paveldvlip
 
Сообщений: 8
FR (активность): 183

Доп. информация
По умолчанию

Цитата:
Сообщение от arraga Посмотреть сообщение
Без конкретики это звучит как детская пугалка - "закрывайте все окна и двери, катится гроб на колёсиках"
Ну к примеру с
https://www.96-05-14.ru/my/index.html
идёт редирект сначала на
http://www.96-05-14.ru/my/
затем на
http://96-05-14.ru/my/
и уже потом на
https://96-05-14.ru/my/
итого три редиректа.
То есть с https редиректит на http, оттуда обратно на https...
У Гугла башню сшибёт от этого. На каждом редиректе теряется вес страницы. К концу третьего он уже теряется совсем.

Просто как пример. Если так сделать на крупном портале, падение по запросам ему обеспечено.
paveldvlip вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
arraga (30.08.2016)
Старый 30.08.2016, 12:32   #9
 
Аватар для arraga
 
Сообщений: 53
FR (активность): 1,791

Доп. информация
По умолчанию Автор темы

@paveldvlip, изменил код на предложенный вами:

<ifModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.96-05-14\.ru$ [NC,OR]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]

RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
</ifModule>

Так тоже вроде всё работает, к тому же он короче, а значит скорее всего лучше) Спасибо.
arraga вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 30.08.2016, 14:14   #10
 
Аватар для paveldvlip
 
Сообщений: 8
FR (активность): 183

Доп. информация
По умолчанию

Цитата:
Сообщение от arraga Посмотреть сообщение
@paveldvlip, изменил код на предложенный вами:

<ifModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.96-05-14\.ru$ [NC,OR]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://96-05-14.ru/$1 [R=301,L]

RewriteRule ^(.*)index\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
</ifModule>

Так тоже вроде всё работает, к тому же он короче, а значит скорее всего лучше) Спасибо.
Предпоследнюю строчку лучше так:

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

Забыл про слеш. А в нём тут вся суть.
cthulchu: сообщение полезно
paveldvlip вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
cthulchu (30.08.2016)
Старый 30.08.2016, 20:55   #11
 
Аватар для arraga
 
Сообщений: 53
FR (активность): 1,791

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от paveldvlip Посмотреть сообщение
Забыл про слеш. А в нём тут вся суть.
А можно объяснить суть?
arraga вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.08.2016, 15:11   #12
 
Аватар для paveldvlip
 
Сообщений: 8
FR (активность): 183

Доп. информация
По умолчанию

Цитата:
Сообщение от arraga Посмотреть сообщение
А можно объяснить суть?
Это редирект когда в каталоге, к примеру /catalog/index.html
тут нет смысла в этом index.html поэтому сделан редирект просто на /catalog/
В принципе и тот и тот вариант кода работать будет, но второй лучше т.к. первый теоретически может средиректить там, где не надо. К примеру, для адреса /catalog/myindex.html будет ошибочный редирект на /catalog/my
Для того там у вас в изначальном коде и была ещё строка RewriteCond
paveldvlip вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
arraga (31.08.2016)
Ответ

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[ Статья ] правила перехода с http на https от гугла MVS Google 15 04.02.2016 21:39
редирект, переадресация 302 vyaches Google 0 23.01.2015 14:57
Неправльная переадресация Nubasek Индексация сайта 3 07.03.2013 11:16
Переадресация с блога SantaHrakus WordPress 14 03.12.2012 12:07
Переадресация newinseo Индексация сайта 1 16.11.2010 00:05

Текущее время: 14:02. Часовой пояс GMT +3.