Рейтинг:0

Запретить Apache2 выполнять CGI в статическом каталоге

флаг cn

Я использую веб-сервер Apache 2, работающий на Ubuntu 20.04 LTS. У меня включен обработчик Python CGI для /var/www/html каталог, который является DocumentRoot. Мне интересно, как исключить определенный каталог из запуска CGI для файлов 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>

в /статический/cdn каталог, я хочу .py файлы, которые будут обслуживаться так же, как и любой другой статический файл, вместо того, чтобы выполняться как CGI. Вот дерево из cdn каталог:

.
ââ checkForUpdates.exe
✓ CheckForUpdates.py
âââ findLogErrors
    âââ botCriteria.json
    âââ cleanup.json
    âââ findLogErrors.exe
    âââ версия.json

1 каталог, 6 файлов

я способен на увидеть индексы каталога в веб-браузере, по желанию. Я могу просмотреть или загрузить любой файл из этого каталога, кроме checkForUpdates.py. Сервер не пытается выполнить его как CGI, он выдает ошибку 403. Разрешения на checkForUpdates.py такие же, как и другие файлы:

nbroyles@webserver:/var/www/html/static/cdn$ ls -altr
всего 15548
-rwxrwxr-x 1 www-data web 15901526 17 ноября 11:37 checkForUpdates.exe
drwxrwxr-x 7 www-data web 4096 19 ноября 11:13 ..
drwxrwxr-x 2 www-data web 4096 23 декабря 09:41 findLogErrors
drwxrwxr-x 3 www-data web 4096 23 декабря 09:49 .
-rwxrwxr-x 1 www-data web 2072 23 декабря 09:49 checkForUpdates.py

Как я могу просмотреть .py файл, как и любой из .json или же .исполняемый файлы? Я уверен, что есть что-то простое, чего мне не хватает в моей конфигурации. Любая помощь приветствуется!

Рейтинг:1
флаг jp

Вам нужно добавить Обработчик по умолчанию SetHandler в <Directory "/var/www/html/static/cdn">

Noah Broyles avatar
флаг cn
Это работает для отображения файла Python, но теперь индексы не отображаются.
флаг jp
Затем измените его на `SetHandler default-handler .py`
Noah Broyles avatar
флаг cn
`apachectl configtest` показывает, что `SetHandler принимает один аргумент, имя обработчика, которое переопределяет любой другой сконфигурированный обработчик`, но я изменил его на `AddHandler`, и все в порядке. Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.