Я пытаюсь настроить 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, их не было!
Большое спасибо.
Это одно из моих давних неудобств по поводу mod_perl, и, в конечном счете, почему я рад, что появился Ruby on Rails.
По сути, вы не можете поделиться тем, где живут ваши Perl-скрипты и где находится статический контент. Они должны быть в разных каталогах. Я часто жульничал и использовал другое имя хоста для статического и динамического контента, что устранило всю проблему. Вы также можете прочитать немного больше о как поместить статический контент в подкаталог возможно.