1
我有一個工作的django.cgi文件,它允許提供內容。 從很多教程我得到了下面的片段我.htaccess
文件:只允許通過CGI訪問文件
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錯誤
謝謝,我完成了這個問題該效果。刪除RewriteCond會導致服務器錯誤。 – ProfHase85 2013-05-14 07:51:38
修改了我的答案,以防止循環。也許這將工作。 – 2013-05-14 23:02:33
非常感謝,現在它工作。我只是不明白,爲什麼: 如果我刪除'RewriteCond%{REQUEST_URI}!django \ .cgi [NC]'並調用任何url,則重寫規則適用,並且應該按照mod_rewrite描述完成:「_ [...]如果模式匹配,mod_rewrite將檢查規則條件,如果不存在,URL將被替換爲一個新的字符串,由替換字符串構成,mod_rewrite繼續下一個規則。請解釋一下? – ProfHase85 2013-05-15 08:32:47