Содержание

301 Редирект в htaccess с http + www на https без www

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

А пока немного теории: 301 редирект это по сути простая 301-ая ошибка (301 Permament Redirect), которая возвращается сервером при запросе конкретного адреса вашего сайта, расшифровывается так: «Сайт на постоянной основе перенесен на такой-то адрес». Все пользователи, боты и другие инопланетные обитатели зашедшие на ваш сайт, будут перенаправляться по новому месту прописки, и для поисковых систем Яндекс, Гугл и других (произойдет склейка домена), весь вес сайта будет перенесен на новый адрес.

Однако санкции наложенные на старый сайт перенесены не будут, иначе все конкуренты давно бы наклепали редиректов со своих ГовноСайтов на сайты конкурентов.

Итак: Правильная настройка 301 редиректа в .htaccess

Базовая настройка редиректа с WWW.site.ru на site.ru  до появления защищенного протокола выглядела так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Обратный редирект с site.ru на WWW.site.ru так:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

Теперь же когда повсеместно стали использоваться Https (SSL) защищенные протоколы. Стали делать переадресацию с с http на https

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Но тут возник вопрос. Как же правильно объединить эти 2 301 редиректа в один, получить компактный код и чтобы не слишком заморачиваться. На просторах интернета я нашел такой вот код и он меня вполне устраивает.

Сразу и перенаправление с www на без + редирект с http на https:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule (.*) https://site.ru/$1 [L,R=301]


Ниже новый вариант который 100% работает (правка от 09.02.2018)

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

Примечание!
1) site.ru — нужно заменить на ваш адрес сайта
2) Эти две строчки: 

Options +FollowSymLinks
RewriteEngine On

Сразу прописаны в файле .htaccess в CMS Joomla 1.5 / 2.5 / 3.x / итд.
Однако если вы их не нашли в этом файле то, чтобы код работал, их необходимо прописать.

Также чтобы не забыть — Простые редиректы!

На другой сайт:

Redirect 301 / http://site.com

Страница на сайт:

Redirect 301 /katalog/tovar1.html http://drugoysite.ru/tovar2.html

Страница на страницу:

Redirect 301 /katalog/tovar-old.html /katalog/tovar-new.html

Я делаю сайты на Joomla 3, но эти редиректы подходят большинству сайтов на php с .htaccess

foxxy.ru

Редирект с https на http — Сайтостроительство

Всем привет! всё уже перепробовал нечего не помогает!

Везде в основном код этот :

RewriteCond %{HTTPS} "on"
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]

В поиске появилась страница главная с   https//site.ru но после перехода по ней, она не открывается в адресной строке так и стоит https//site.ru.

Помогите решить проблему плиз

Сам файл htaccess сейчас такой:

<IfModule mod_rewrite.c>
	RewriteEngine On	
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://site.ru [R=301,L]
	RewriteRule gradient_(.*)_(.*)_(.*)_(.*).png$ core/image/gradient_bg.php?width=$1&height=$2&top=$3&bot=$4 [NC]
	RewriteRule profile-(.*)$ profile.php?username=$1 [NC] 
</IfModule>
Options -Indexes
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
ErrorDocument 404 /404.php
ErrorDocument 403 /404.php
<IfModule mod_rewrite.c>
RewriteCond %{SERVER_PORT} =443
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [L]       
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]        
#Remove extra trailing slashes
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R=301,L]

#Add missing trailing slash
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

RewriteRule /(uploads/.*) $1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f


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

<ifModule mod_deflate.c>
	<filesmatch "\.(js|css|html|jpg|png|gif|eot|woff|ttf|svg)$">
		SetOutputFilter DEFLATE
	</filesmatch>
</ifModule>

<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak|cache|tpl)$">
	Order Allow,Deny
	Deny from all
</FilesMatch>
<Limit GET POST>
 order allow,deny
 deny from 46.119.182.98
 allow from all
</Limit>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType fonts/opensans300.woff "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>

 

talk.pr-cy.ru

Редирект с www на без www (https > http)

Модератор
SeVlad

(@sevlad)

wp.me/3YHjQ

Вчера целый день пытался вставлять разные примеры и гуглить, но редирект либо не работает, либо пишет что site.su выполнил переадресацию слишком много раз.

Не ставьте «с www на без www», а просто правильно настройте адреса сайта в админке.

То есть достаточно сделать так?
https://i.imgur.com/p5k3XHc.png (я тут указал адрес без www)

И не требуется отдельно делать редирект с https на http?

Модератор
SeVlad

(@sevlad)

wp.me/3YHjQ

То есть достаточно сделать так?
https://i.imgur.com/p5k3XHc.png (я тут указал адрес без www)

Да.
Но на всякий случай убедитесь, что ещё на сервере «с www» и «без www» являются зеркалами/алиасами. Т.е. указывают на один и тот же физ. каталог. Обычно так и есть, но перепроверь не помешает.

И не требуется отдельно делать редирект с https на http?

А этот редирект стоит сделать если не хотите чтобы сайт был доступен И по https (по двум протоколам).

Хостинг с СПанелью сделал подарок?

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

Сейчас проверил в redirectdetective вроде все комбинации перенаправляет по 301 редиректу на тот адрес, что мне нужно.

Но на всякий случай убедитесь, что ещё на сервере «с www» и «без www» являются зеркалами/алиасами. Т.е. указывают на один и тот же физ. каталог. Обычно так и есть, но перепроверь не помешает.

Вот тут не понял немного. На хостинге стоит ispmanager, не подскажите что там нужно проверить?

А, в таком случае все нормально, судя по редиректам. Большое спасибо за помощь.

Модератор
SeVlad

(@sevlad)

wp.me/3YHjQ

На хостинге стоит ispmanager, не подскажите что там нужно проверить?

В панели в настройках www-домена поле с доп. доменами. Там ISP по умолчанию подставляет домен с www.
https://i.imgur.com/Auznxoq.png

И там же ниже отключить SSL и никаких редиректов делать не придётся.

ru.wordpress.org

Nginx redirect (на https, с www на без www, 301 редирект)

В Nginx версий до 0.9.1 переадресация (301 редирект) может задаваться следующим образом:

 

server {
listen 80;
server_name example.com;

rewrite ^ http://example-site.com$request_uri;
}

 

В современных версиях веб-сервера, согласно официальной документации в Nginx redirect нужно настраивать используя return с указанием кода HTTP ответа (301 или 302)

 

server {
listen 80;
server_name example.com;
return 301 http://$host$request_uri;
}

 

В примере приведен пример настройки переадресации все запросов к страницам одного сайта на страницы другого сайта.

 

 

server {
listen 80;
server_name www.example.com;
return 301 http://example.com$request_uri;
}

 

 

Nginx редирект на https

server {
listen 80;
server_name www.example.com;
return 301 https://example.com$request_uri;
}

или

server {
listen 80;
server_name www.example.com example.com;
return 301 https://example.com$request_uri;
}

В последнем случае редирект будет отрабатывать для www.example.com и example.com, все запросы будут направляться на имя без www, доступную по https.

 

Если переадресация нужна только для example.com без www, то www.example.com можно указать в качестве server_name в отдельной специально созданной секции конфигурационного файла

 

server {
listen 80;
server_name www.example.com;

}

 

Также часто возникает необходимость переадресовывать запросы ко всем доменам в конфигах на один, сделать это можно задав две секции server и директиву default_server, под которую будут попадать все имена сайтов кроме заданных непосредственно (example.com и www.example.com в примере).

 

server {
listen 80;
server_name example.com www.example.com;

}

 

server {
listen 80 default_server;
server_name _;
return 301 http://example.com$request_uri;
}

 

Если на сервере используется конфигурация Nginx + Apache, Nginx + Unicorn или подобная редирект всегда настраивается для того пакета, который первым обрабатывает запрос принимая его непосредственно от пользователя

 

netstat -nltp | grep 80

 

Для большинства конфигураций в выводе будет именно рассматриваемый веб-сервер — если это так, переадресацию нужно настраивать для него.

server-gu.ru

htaccess 301 редирект с www на без www и наоборот с без www на www

Многие интернет сервисы автоматически добавляют перед доменом www, таким образом, с течением времени, на ваш сайт постепенно будут добавляться внешние ссылки с www, хотя основной адрес вашего без www. Такие ссылки с www не будут передавать вес вашему основному сайту без www.
Для поисковых систем домен с www и без www — это формально два разных сайта и для того, чтобы они правильно его индексировали и ранжировали в выдаче как единое и целое нужен 301 редирект с домена с www на домена без www или наоборот.
Самый простой вариант редиректа для хостинга на Apache — при помощи файла .htaccess, который находится в корне сайта.

Универсальный редирект с www на без www для любого домена

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

Универсальный редирект с без www на www для любого домена

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

Универсальный редирект с www на без www для любого домена с протоколом https

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

Универсальный редирект с без www на www для любого домена с протоколом https

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

Иногда требуется исключить из редиректа один или несколько файлов, например robots.txt, чтобы указать яндексу главное зеркало с помощью директивы Host.

Универсальный редирект с www на без www для любого домена, за исключением файла robots.txt

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule (.*) http://%1/$1 [R=301,L]

Универсальный редирект с без www на www для любого домена, за исключением файла robots.txt

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

Универсальный редирект с протокола http на https для любого домена

RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

Универсальный редирект всех зеркал сайта на протокол https для любого домена

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

Универсальный редирект всех зеркал сайта на протокол https для любого домена, за исключением файла robots.txt

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule (.*) https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

Возможно Вы даже и не обращали внимание, что Ваша главная страница сайта или папки может быть доступна по двум адресам: site/ и site/index.php. С точки зрения поисковой оптимизации это называется дублями. Чтобы избавиться от дублей используем 301 редирект.

301 редирект с index.php, index.html и index.htm на корень сайта, папки «/»

RewriteCond %{THE_REQUEST} /index.(php|html|htm)
RewriteRule ^(.*/)?index.(php|html|htm)$ /$1? [NC,R=301,L]

301 редирект с index.php, index.html и index.htm на корень сайта, папки «/» для сайтов на протоколе https

RewriteCond %{THE_REQUEST} /index.(php|html|htm)
RewriteRule ^(.*/)?index.(php|html|htm)$ https://%{HTTP_HOST}/$1? [NC,R=301,L]

Данный код нужно вставить в начало файла .htaccess.
Для этого скачайте файл .htaccess на свой компьютер с корня сайта расположенного на сервере хостинга. Откройте файл .htaccess для редактирования, например, в блокноте или Notepad++. Добавьте в него нужные вам строки. Сохраните изменения в файле и загрузите его обратно на сервер.

Результат можно проверить с помощью сервиса проверки HTTP заголовков сайта.

Обновлено:

depositfiles.od.ua

Решено ✔ редирект с https на http



Войти   

Login to your account





Войти



Запомнить меня

Забыли пароль?



или



Регистрация   

или

  • Контакты

  • FAQ

  • Условия

  • Главная

  • Настройка

  • Все Статьи

  • Услуги

  • Joomla 3

  • Избранные

      • Back

joom-la-la.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о