Rulez un server web Apache 2 care rulează pe Ubuntu 20.04 LTS. Am un handler CGI Python activat pentru /var/www/html
directorul, care este DocumentRoot
. Mă întreb cum să exclud un anumit director de la rularea CGI pentru fișierele Python.
Aici, în configurația mea CGI:
<Directory "/var/www/html">
Options +ExecCGI
AddHandler cgi-script .py
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.py -f
RewriteRule ^(.*)$ $1.py
</IfModule>
</Directory>
<Directory "/var/www/html/static/cdn">
DirectoryIndex disabled
Options +Indexes -ExecCGI
AllowOverride None
Require all granted
</Directory>
În /static/cdn
director, vreau .py
fișierele să fie servite la fel ca orice alt fișier static, în loc să fie executate ca CGI. Aici este un copac al cdn
director:
.
âââ checkForUpdates.exe
âââ checkForUpdates.py
âââ findLogErrors
âââ botCriteria.json
âââ cleanup.json
âââ findLogErrors.exe
âââ version.json
1 director, 6 fișiere
Eu pot sa vezi indexurile directorului în browserul web, așa cum se dorește. Pot vedea sau descărca orice fișier din acest director, cu excepția checkForUpdates.py
. Serverul nu încearcă să-l execute ca CGI, dă un 403. Permisiunile pe checkForUpdates.py
sunt aceleași cu celelalte fișiere:
nbroyles@webserver:/var/www/html/static/cdn$ ls -altr
total 15548
-rwxrwxr-x 1 www-data web 15901526 17 noiembrie 11:37 checkForUpdates.exe
drwxrwxr-x 7 www-data web 4096 Nov 19 11:13 ..
drwxrwxr-x 2 www-data web 4096 Dec 23 09:41 findLogErrors
drwxrwxr-x 3 www-data web 4096 Dec 23 09:49 .
-rwxrwxr-x 1 www-data web 2072 23 decembrie 09:49 checkForUpdates.py
Cum pot vedea .py
fișier la fel ca oricare dintre .json
sau .executabil
fisiere? Sunt sigur că îmi lipsește ceva simplu din configurația mea. Orice ajutor este foarte apreciat!