.htaccess перенаправляет http на https только для некоторых доменов дополнений.
У меня есть несколько доменов аддонов в моей учетной записи хостинга. Я хотел бы перенаправить не-https в https для основного домена и ТОЛЬКО ОДИН из дополнительных доменов.
Проблема, с которой я сталкиваюсь, заключается в том, что www.firstaddondomain.com не перенаправляет на https://www.firstaddondomain.com/. Вместо этого это, кажется, не перенаправляет вообще. Он остается на www.firstaddondomain.com.
Примечание: я не хочу перенаправлять все http на https. У меня есть другой домен аддона, который я не хочу перенаправлять на https.
Вот как выглядит мой файл.htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?maindomain\.com$ [NC]
RewriteRule ^$ https://www.maindomain.com/$1 [R,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?firstaddondomain\.com$ [NC]
RewriteRule ^$ https://www.firstaddondomain.com/$1 [R,L]
ОБНОВЛЕНИЕ: Спасибо за ваш ответ, анубхава. Мой первый аддон-домен на самом деле является доменом.org, поэтому мой обновленный файл.htaccess немного отличается от вашего ответа.
Вот мой обновленный файл.htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?firstaddondomain\.org$ [NC]
RewriteRule ^ https://www.firstaddondomain.org%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?maindomain\.com$ [NC]
RewriteRule ^ https://www.maindomain.com%{REQUEST_URI} [R=302,L,NE]
2 ответа
- Ваше регулярное выражение не захватывает
$1
- Оба правила могут быть объединены в одно
Ты можешь использовать:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(maindomain|firstaddondomain)\.com$ [NC]
RewriteRule ^ https://www.%1.com%{REQUEST_URI} [R=302,L,NE]
Убедитесь, что это ваше первое правило и помещено в DocumentRoot/.htaccess
обоих доменов.
Может варьироваться в зависимости от условий вашего хостинга, однако в средах общего хостинга Godaddy и без SSL-сертификата Wildcard, т. Е. SSL-сертификата для одного домена. Это единственная конфигурация, которой удалось исключить дополнительный домен из принудительного перенаправления HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?ADDON_DOMAIN\.com$ [NC]
RewriteRule .* - [L]
# Это необходимо для того, чтобы гарантировать, что никакие дополнительные условия не будут применены после перехода к домену дополнения. #RewriteCond %{HTTPS} off
# Теперь, когда вы определили свое исключение и убедились, что его логика не зависит от всех других запросов URI, необходимо повторно установить это условие еще раз #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]