1

我有一个允许提供内容的工作 django.cgi 文件。从许多教程中,我得到了以下.htaccess文件片段:

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

该片段允许直接访问任何文件(无需使用 cgi 脚本)。

我想禁止直接访问任何文件,以便只能将文件传递给 cgi 脚本,除了 /static 目录中的所有文件。我试过:

order allow,deny
deny from all
<Files django.cgi>
  order allow,deny
  allow from all
</Files>

但是有了这个解决方案,我可以调用 www.mysite.com/django.cgi,而 www.mysite.com 是被禁止的。是否有适当的方法将任何内容传递给 cgi 脚本(静态文件夹除外)?

* 编辑 * 出于任何原因,如果我放弃 RewriteCond RewriteCond %{REQUEST_FILENAME} !-f,我会收到 500 错误

4

1 回答 1

1

尝试删除RewriteCond %{REQUEST_FILENAME} !-f.

该条件是从规则中排除现有文件,应该是这样的:

RewriteCond %{REQUEST_URI} !django\.cgi  [NC]
RewriteRule ^(.*)$ django.cgi/$1 [QSA,L]
于 2013-05-13T18:57:33.493 回答