我正在运行在 Ubuntu 20.04 LTS 上运行的 Apache 2 Web 服务器。我为/var/www/html
目录启用了 Python CGI 处理程序,即DocumentRoot
. 我想知道如何从运行 CGI for Python 文件中排除某个目录。
在我的 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>
在/static/cdn
目录中,我希望.py
文件像任何其他静态文件一样被提供,而不是作为 CGI 执行。这是cdn
目录树:
.
├── checkForUpdates.exe
├── checkForUpdates.py
└── findLogErrors
├── botCriteria.json
├── cleanup.json
├── findLogErrors.exe
└── version.json
1 directory, 6 files
我可以根据需要在 Web 浏览器中查看目录的索引。我可以从这个目录查看或下载任何文件,除了checkForUpdates.py
. 服务器没有尝试将其作为 CGI 执行,它给出了 403。权限checkForUpdates.py
与其他文件相同:
nbroyles@webserver:/var/www/html/static/cdn$ ls -altr
total 15548
-rwxrwxr-x 1 www-data web 15901526 Nov 17 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 Dec 23 09:49 checkForUpdates.py
我怎样才能像查看任何.py
文件一样查看文件?我确定我的配置中缺少一些简单的东西。任何帮助是极大的赞赏!.json
.exe
您需要
SetHandler default-handler
添加<Directory "/var/www/html/static/cdn">