
Я пытаюсь настроить Apache для отправки большинства URI в мое приложение mod_perl, за исключением нескольких файлов, которые я хочу обслуживать с помощью обработчика по умолчанию. (отправить статический файл)
я хочу всеhttp://myserver.com/xxxxxперейти к mod_perl с /, /index.html, robots.txt и несколькими подпапками, которые будут обслуживаться статически.
Я пробовал несколько разных комбинаций, но не могу заставить это работать. Кажется, нет способа сделать < LocationMatches > или что-то в этом роде.
Если я определю переменную PERL,всепереходит к скрипту, при его отключении я могу отключить статические данные, но очевидно, что скрипт не работает.
<Directory /home/httpd/plaintext>
AllowOverride None
<Files ~ "(index.html|robots.txt|favicon.gif)">
SetHandler default-script
</Files>
AddDefaultCharset utf-8
DirectorySlash off
Order allow,deny
Allow from all
</Directory>
<IfDefine PERL>
<Location />
SetHandler perl-script
PerlResponseHandler LinkCrunchDB::Handler
</Location>
</IfDefine>
Думаю, взлом модуля для использования внутренних перенаправлений мог бы сработать, но это некрасиво.
Я использую Gentoo Linux, который включает все файлы в папке module.d/, а затем в папке vhost.d. Я проверил все это и удалил все папки Directory или Location, их не было!
Большое спасибо.
решение1
Это одно из моих давних разочарований в mod_perl, и в конечном итоге именно поэтому я рад появлению Ruby on Rails.
По сути, вы не можете делиться тем, где находятся ваши скрипты Perl, и тем, где находится статический контент. Они должны находиться в разных каталогах. Я часто жульничал и использовал разные имена хостов для статического и динамического контента, что устраняло всю проблему. Вы также можете немного почитать окак поместить статический контент в подкаталогвозможно.