2015-06-13 3 views
1

Есть несколько вопросов, как это, но мой вопрос немного отличаетсяПеренаправление не-WWW к WWW, кроме подобласти .htaccess

Redirect non-www to www in .htaccess

force non www to www in htaccess

Redirect Non-WWW to WWW URLs

Я хочу перенаправить не-www версию веб-сайта на www, но она не должна каким-либо образом влиять на поддомены, поэтому

www.example.com => www.example.com 
example.com => www.example.com 
sub1.example.com => sub1.example.com 
sub2.example.com => sub2.example.com 

это не работает, потому что он не ведет себя хорошо в случае поддоменов

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

Это решение отлично работает

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

однако, главное, я не хочу, чтобы жестко закодировать имя домена в htacess. Как (если возможно) иметь вышеупомянутые перенаправления для общего случая - без упоминания точного имени домена?

Благодаря

ответ

1

Вы можете использовать это правило:

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

ТКС для asnwer: он не работает, но, возможно, это из-за меня есть домен 'example.com.au'? возможно ли заставить его работать как с доменами example.com, так и с example.com.au? – dav

+0

это сработало, но можем ли мы обобщить com и au part? Я имею в виду, что я пробовал как этот 'RewriteCond% {HTTP_HOST}^[^.] + \. [Az] {2,3} (\. [Az] {2})? $ [NC]', и он работал, но это правильный синтаксис? tks – dav

+0

Хм, ваше регулярное выражение не является на 100% надежным, чтобы обнаружить неподдомены. Например, он будет соответствовать 'bbc.co.uk', который является субдоменом. – anubhava

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