2010-04-12 35 views
7

görmezden Ben bir .htaccess böyle "non www" için yönlendirme var. Ancak, www dışında bazı alt alan adlarım da var. , Böyle '' sadece www daha başka bir şey yok saymak ve otomatik çalışması gerekir ben .htaccess dosyasına alt alanları yazmak istemiyorum http://www.shop.example.comolmayan www .htaccess yönlendirme diğer alt etki alanları

: Ben örneğin http://shop.example.com için ararsanız o beni yönlendirir

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

Teşekkürler!

cevap

1

bu deneyin:

Options +FollowSymlinks 

RewriteEngine On 

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

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

Sadece internetagentur.drupal-webmaster.de (alt alan) ile denedim - Ana www yoktur.

+0

yo Pero! Test etmedim, çünkü php ile başka bir çözüm buldum. Cevabını zaten kabul ediyorum;) danke. – MilMike

10

Bu kuralı deneyin:

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

Ve de dikkate HTTPS almak:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

Teşekkür ederim - referans için bu çözüm bana çalışıyor sunucu SSL yok, bu yüzden parça test edilmedi – Alvin

0

bir php çözüm buna benzer bir şey kullanabilirsiniz isterseniz:

define('URL', 'yourdomain.com/'); 

// fix : impose www rule 
if (strpos($_SERVER['SERVER_NAME'], 'www') === false) { 
    header('Location: http://www.'.URL.$_SERVER['REQUEST_URI']); 
    die(); 
} 

Bu, orijinal olarak istenen sayfaya yönlendirilir.

İlgili konular