仅允许通过cgi访问文件

时间:2013-05-13 13:37:31

标签: django .htaccess apache2

我有一个工作的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错误

1 个答案:

答案 0 :(得分:1)

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

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

RewriteCond %{REQUEST_URI} !django\.cgi  [NC]
RewriteRule ^(.*)$ django.cgi/$1 [QSA,L]
相关问题