Apache2

阻止 Apache2 在靜態目錄中執行 CGI

  • December 23, 2021

我正在執行在 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">

引用自:https://serverfault.com/questions/1088089