mod_rewrite aturan untuk menjalankan fcgi untuk subdomain yang berbeda

2

Di server hosting bersama saya (Hostmonster) saya memiliki pengaturan Django (sebenarnya pinax) sehingga aturan mod_rewrite .htaccess menulis ulang permintaan ke file pinax.fcgi:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax.fcgi/$1 [QSA,L]

Yang ingin saya lakukan adalah memiliki file pinax.fcgi yang berbeda dipanggil tergantung pada domain yang digunakan (atau subdomain), sesuatu seperti ini:

RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax2.fcgi/$1 [QSA,L]


RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax.fcgi/$1 [QSA,L]

Ini disimpan dalam file .htaccess di folder ROOT public_html saya (bukan di folder public_html / subdomain /), tetapi sayangnya hanya menghasilkan kesalahan redirect internal. Bagaimana saya bisa menulis aturan ini sehingga mereka menggunakan file fcgi berbeda untuk domain yang berbeda?

Anthony Hiscox
sumber

Jawaban:

2

Saya menemukan jawabannya.

Di root .htaccess (di public_html) masukkan:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax.fcgi/$1 [QSA,L]

Di subdomain Anda .htaccess (di public_html / subdomain) masukkan:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax2.fcgi/$1 [QSA,L]

pinax2.fcgi harus di direktori public_html / subdomain /, dan pinax.fcgi harus di public_html /

Anthony Hiscox
sumber
1
Anda berhak mendapatkan +1 lebih banyak untuk ini - saya telah mencari solusi selama berjam-jam!
danodonovan