mod_rewrite 规则为不同的子域运行 fcgi

mod_rewrite 规则为不同的子域运行 fcgi

在我的共享托管服务器(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/ 中

相关内容