Skip to content

Редирект с одного домена на другой при включенном HTTPS

Сейчас в .htaccess такой код:

 

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpeg|jpg|gif|png)$ /public/404.php [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
AddDefaultCharset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml

 

Как сделать, чтобы со старого домена перенаправлять на новый? В Яндексе все инструкции для http :(

Featured Replies

  • Author

Может заменить:

 

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

 

На

RewriteCond %{HTTP:X-HTTPS} !1 ^oldsite\.com$ [NC]
RewriteRule ^(.*)$ https://newsite%{HTTP_HOST}/$1 [R=301,L,QSA]

В Яндексе все инструкции для http

Редирект с одного домена на другой от протокола не зависит. Вы можете редиректить с любого протокола на другой домен с любым протоколом.

 

RewriteCond %{HTTP_HOST} old-domen\.ru
RewriteRule ^(.*)$ https://new-domen.ru/$1 [R=301,L]

Может заменить:

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

  • Author

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

 

К сожалению ссылки не редиректятся с http, т. е. если убрать из адреса s - страница открывается по незащищенному протоколу.

Edited by ovi8

К сожалению ссылки не редиректятся с http

Должно. Обновите кеш браузера и добавьте редирект сразу после RewriteEngine

т. е. если убрать из адреса s - страница открывается по незащищенному протоколу.

Я не понимаю при чем протокол если вы делаете редирект с одного домена на другой. Она не должна открываться ни по защищенному ни по простому, а должен происходить редирект на новый домен.

  • Author

Должно. Обновите кеш браузера и добавьте редирект сразу после RewriteEngine

Не помогло, может из-за того что я это удалил?

 

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

  • Author

Я не понимаю при чем протокол если вы делаете редирект с одного домена на другой. Она не должна открываться ни по защищенному ни по простому, а должен происходить редирект на новый домен.

Нет, редирект работает :) Просто если руками убрать из адреса s то страница открывается по незащещенному протоколу, впрочем так и на старом домене было пока не добавил код выше.

Не помогло, может из-за того что я это удалил?

Это удалять не нужно если вы хотите сохранить редирект с http на https. Редирект с домена и редирект с http это разные редиректы. Совместить их в один можно следующем образом:

 

RewriteCond %{HTTP:X-HTTPS} !1 [OR]
RewriteCond %{HTTP_HOST} !new-site\.ru
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]

  • Author

То что надо, благодарю :rolleyes:

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.