Перенаправить только поддомен HTTP в поддомен HTTPS в htaccess - PullRequest
0 голосов
/ 27 сентября 2018

Как перенаправить только поддомен HTTP на поддомен HTTPS в .htaccess?Основной сайт находится в WordPress и уже перенаправлен на HTTPS с плагином, но поддомен - это сайт, созданный PHP.Я смотрел и не видел окончательного решения этой проблемы здесь.

Я скопировал и вставил этот предложенный код, но он ничего не сделал:

#Redirect Subdomain
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [NC]
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Ответы [ 2 ]

0 голосов
/ 16 октября 2018
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [NC]
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Это создаст цикл перенаправления (если выполняется вообще).Чтобы перенаправить с HTTP на HTTPS, вам необходимо сначала проверить, что вы еще не используете HTTPS (в противном случае вы получите цикл перенаправления).

Эти директивы должны быть указаны в .htaccess в корне документавашего субдомена.Или вверху вашего корневого (WordPress) .htaccess файла, если поддомен указывает на корень документа основного сайта.Важно то, что перенаправление должно идти до фронт-контроллера WordPress.

Это также предполагает, что ваш SSL-сертификат установлен непосредственно на сервере приложений, а не прокси.

Попробуйте следующее:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com [NC]
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Это проверяет, что HTTPS не содержит "on" и , а поддомен запрашивается перед перенаправлением на HTTPS на том же хосте.

Хотя если WP просто перенаправляет основной домен, то вы можете сделать все это в .htaccess и просто удалить условие, которое проверяет соответствие HTTP_HOST.Хотя, если у вас есть другие субдомены, которые не следует перенаправлять на HTTPS, измените CondPattern , чтобы он соответствовал только субдомену или основному домену (и субдомену www).Например:

RewriteCond %{HTTP_HOST} ^((subdomain|www)\.)?example\.com [NC]
0 голосов
/ 06 октября 2018

Пожалуйста, попробуйте одно из следующих:

you need to edit
    Redirect "/" "https://yourwebsite.com/"

ИЛИ

вам не нужно редактировать следующее

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