Использование AddHandler внутри каталога в Apache2Apache

Ответить
Anonymous
 Использование AddHandler внутри каталога в Apache2

Сообщение Anonymous »

Я использую apache2 в Debian 12 в DigitalOcean.
Следуя документации mod_rewrite, я обслуживаю файлы из двух разных каталогов. Я также использую переменные для корня моего документа, потому что у меня та же проблема, что и в этом сообщении веб-мастеров.
Исходная проблема: я хочу разрешить запуск сценариев cgi, но только во втором каталог, и я хочу передать определенные расширения интерпретатору.
Я настроил VirtualHost следующим образом:

Код: Выделить всё

ServerName example.org

Define document_root /data/example.org/site
DocumentRoot ${document_root}

RewriteEngine on

RewriteCond "${document_root}%{REQUEST_URI}" -f [OR]
RewriteCond "${document_root}%{REQUEST_URI}" -d
RewriteRule "(.*)" "${document_root}$1" [L]


Require all granted


Define script_dir /data/example.org/scripts
RewriteCond "${script_dir}%{REQUEST_URI}" -f [OR]
RewriteCond "${script_dir}%{REQUEST_URI}" -d
RewriteRule "(.*)" "${script_dir}$1" [L]

ScriptAlias /hello /data/example.org/scripts/hello.cgi

Options +FollowSymlinks +ExecCGI
AddHandler cgi-script .cgi
AddHandler text/xyz .xyz
Action text/xyz /hello
Require all granted


Если я перейду к example.org/abc.xyz, файл будет загружен, а не передан в hello.cgi script.
Если я перепишу виртуальный хост так, чтобы директивы AddHandler находились вне блока , то я я могу запустить свой xyz скрипты... но я могу запускать их из любого каталога. Я хочу, чтобы запускались только те, которые находятся в каталоге /scripts. Возможно ли это?

Подробнее здесь: https://stackoverflow.com/questions/793 ... in-apache2
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»