2014-12-19 2 views
1

У меня есть несколько доменов аддона на моей учетной записи хостинга. Я хотел бы перенаправить не-https на https для основного домена и ТОЛЬКО ОДИН из доменов аддонов..htaccess перенаправить http на 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] 

UPDATE: Спасибо за ваш ответ, анубхава. Мой первый аддон-домен фактически является доменом .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] 

ответ

4
  • Ваше регулярное выражение не захватывая $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 обоих доменов.

+0

Спасибо за ваш ответ. Это помогло некоторым, но у меня все еще есть проблемы. Я обновил свой пост выше. –

+0

Я не думаю, что могу ... Я использую хостинг godaddy.com. Я не верю, что у меня есть доступ к записи virtualhost. –

+0

Я вернулся и снова попробовал веб-сайт сегодня, и, правильно, добавление домена, которое я не хочу перенаправлять на https, не перенаправляется. Я не знаю, почему это не сработало сразу. Может быть, он был кеширован? В любом случае, спасибо за вашу помощь! –

0

Может различаться в зависимости от условий вашего хостинга, однако в гостевых средах Godaddy & без использования подстановочного SSL-сертификата, то есть сертификата 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]

Смежные вопросы