Buat VHost & Teruskan subdomain ke sana

8

Guru Jadi

Saya memiliki file .htaccess sederhana di mana saya hanya mengarahkan non www ke www untuk aplikasi web saya. Sekarang yang ingin saya lakukan adalah

  1. Buat vhost baru seperti http: //subdomain.mydomain.tld
  2. Buat pengalihan untuk siapa saja yang datang ke subdomain itu ke folder di aplikasi saya seperti app / webroot / subdomain

.Htaccess saya saat ini terlihat seperti ini

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www\.mydomain\.tld [NC]
    RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301.L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app/webroot/$1 [QSA,L]
</IfModule>

Bagaimana saya melakukannya? Bisakah saya melakukan ini semua dalam file .htaccess saya atau apakah saya perlu mengacaukan GoDaddy juga? Saya lebih suka tidak melakukan ini di aplikasi, jika itu masuk akal.

Saya menjalankan Ubuntu 10.04 + Apache 2.2.14-5

Terima kasih


sumber

Jawaban:

18

Inilah yang perlu Anda masukkan ke file .htaccess Anda:

RewriteEngine on
# redirect mydomain.tld to www.mydomain.tld
RewriteCond %{HTTP_HOST} ^mydomain\.tld [NC]
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]

# default website
RewriteCond %{HTTP_HOST} ^www\.mydomain\.tld$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app/webroot/$1 [NC,QSA,L]

# subdomain to folder
RewriteCond %{HTTP_HOST} ^(sub|subfolder)\.domain\.com$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)/?$ http://www.domain.com/%1/$1 [NC,QSA,L]
Kitab Zeus
sumber
Terima kasih, Apakah saya perlu mengatur vhost terlebih dahulu untuk subdomain itu?
Anda selalu dapat vhost untuk itu dengan DocumentRoot yang sama dengan WWW jika Anda mau. Anda juga dapat mengubah ServerAlias ​​dari www vhost Anda untuk menambahkan lebih banyak domain misalnya: ServerAlias ​​domain.com www.domain.com sub.domain.com.
Maaf, saya n00b dengan apache2. Jadi, 2 hal - 1. Saya hanya ingin mengizinkan subdomain tetap dan tidak ([a-z0-9]) sesuai kode Anda, haruskah saya mengubahnya menjadi ^ (sub)? 2. Bagaimana cara mengatur vhost lagi (terlalu n00b untuk Anda? Maaf)?
1) lihat jawaban saya yang diperbarui. 2) Apakah Anda membuat entri sub domain? Apakah Anda mengarahkannya ke tempat yang sama dengan www?
1) Saya sedang menatapnya & belum dapat menemukan satu perubahan pun, apakah saya benar-benar tersesat? 2) Tidak ada yang lain dalam file .htaccess itu tetapi apa yang telah saya perlihatkan.