2011-03-26 25 views
11

Pratik Bilgiler htacess ile bu hale: Yapmakhtaccess alt alan

subdomain.domain.com -> domain.com/subdomain (no redirect on client side) 
domain.com/subdomain -> subdomain.domain.com (redirect) 

firs yönlendirmek: Bu formu htacess takılı nasıl

RewriteRule ^subdomain/ - [L] 
RewriteCond %{HTTP_HOST} ^subdomain.domain.com [NC] 
RewriteRule (.*) subdomain/$1 [L] 

:

AddDefaultCharset utf-8 
DirectoryIndex index.php index.html index.htm 
Options All -Indexes 
ErrorDocument 404 /404.html 
ErrorDocument 403 /404.html 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domain.com 
RewriteRule (.*) http://www.domain.com/$1 [R=301,L] 
RewriteCond %{REQUEST_URI} !\.(png|jpg|jpeg|gif)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*)$ index.php/$1 [QSA] 
+0

musunuz? –

+0

Şu anda – Makigator

cevap

9

Bu bir joker olduğunu tabanlı bir çözüm, bu yüzden herhangi bir alt alan için çalışacaktır. Bunun yerine 302 301 (kalıcı yönlendirme) kullanmayı düşünebilirsiniz

RewriteCond %{HTTP_HOST} ^(.*).domain.com$ [NC] 
RewriteRule (.*) %1/$1 [L] 

:

RewriteCond %{HTTP_HOST} ^domain.com$ [NC] 
RewriteRule ([^/]+)(/.*|$) $1.domain.com/$2 [R=302] 

Bu idare edecek (dahili yeniden yazma) sanal bilgisayarlar:

Bu domain.com/foo/barfoo.domain.com/bar yönlendirir.

Ana sayfanız için VirtualHost bulunduğunu kesinlikle öneririm domain.com veya www.domain.com ve sanal alt etki alanları için ayrı bir tane. Sadece belirli bir alt alan için

: Orada birden alt alanları

RewriteCond %{HTTP_HOST} ^domain.com$ [NC] 
RewriteRule (subdomain)(/.*|$) $1.domain.com/$2 [R=302,L] 

RewriteCond %{HTTP_HOST} ^(subdomain).domain.com$ [NC] 
RewriteRule (.*) %1/$1 [L] 
+0

numaralı telefon hattına sahip olmamalıdır. Sanırım, * .domain.com alt etki alanını cPanel'e eklemesi veya bunun çalışması için bunun gibi. –

+0

Cevabı sürekli olarak düzenliyorum. Evet, bir noktada 'VirtualHost' içinde' ServarAlias ​​* .domain.com' olmalıdır. – vbence

+0

Teşekkürler, iyi kararlar. Nasıl yapılır, ancak sadece belirli bir isme sahip bir alt alan için (yani, sadece 1 alt alan) – Makigator