не www .htaccess перенаправление - игнорируют другие субдомены

У меня есть перенаправление .htaccess для "не www" как это:

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

это работает. Но, у меня есть также некоторые субдомены кроме www. Если я называю, например, http://shop.example.com, это перенаправляет меня к: http://www.shop.example.com

Я не хочу писать субдомены в .htaccess файл, он должен работать автоматически, просто проигнорировать что-либо еще, чем www и '' как это:

if subdomain =='' -> redirect to www.HTTP_HOST....
elseif subdomain !='' && subdomain !='www' -> do nothing.

спасибо!

7
задан MilMike 12 April 2010 в 09:50
поделиться

2 ответа

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

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www\.(.*)//((s)on|s.*)$ [NC]

RewriteRule ^ http%3://%1%{REQUEST_URI} [L,R=301]

Только что попробовал с internetagentur.drupal-webmaster.de (поддомен) - основной без www.

1
ответ дан 6 December 2019 в 23:03
поделиться

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

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

А также принять во внимание HTTPS:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
10
ответ дан 6 December 2019 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: