Следуя документации 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
Если я перепишу виртуальный хост так, чтобы директивы AddHandler находились вне блока , то я я могу запустить свой xyz скрипты... но я могу запускать их из любого каталога. Я хочу, чтобы запускались только те, которые находятся в каталоге /scripts. Возможно ли это?
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-apache2
Мобильная версия