1

コンテンツを提供できる作業中の django.cgi ファイルがあります。.htaccess多くのチュートリアルから、ファイルの次のスニペットを取得しました。

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

このスニペットにより、任意のファイルに直接アクセスできます (cgi スクリプトを使用する必要はありません)。

/static ディレクトリ内のすべてのファイルを除いて、ファイルを cgi スクリプトにのみ渡すことができるように、ファイルへの直接アクセスを禁止したいと思います。私は試した:

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 に答える