在我的共享托管服务器(Hostmonster)上,我设置了 django(实际上是 pinax),以便 .htaccess mod_rewrite 规则将请求重写为 pinax.fcgi 文件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax.fcgi/$1 [QSA,L]
我想要做的是根据所使用的域(或子域)调用不同的 pinax.fcgi 文件,如下所示:
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]
它存储在我的 ROOT public_html 文件夹(而不是 public_html/subdomain/ 文件夹)中的 .htaccess 文件中,但不幸的是只会导致内部重定向错误。我该如何编写这些规则,以便它们对不同的域使用不同的 fcgi 文件?
答案1
我想到了。
在根目录 .htaccess (在 public_html 中) 输入:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax.fcgi/$1 [QSA,L]
在您的子域名 .htaccess 中(在 public_html/subdomain 中)输入:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pinax2.fcgi/$1 [QSA,L]
pinax2.fcgi 需要位于 public_html/subdomain/ 目录中,而 pinax.fcgi 应该位于 public_html/ 中