
Ich versuche, Apache so zu konfigurieren, dass die meisten URIs an meine mod_perl-Anwendung gesendet werden, mit Ausnahme einiger Dateien, die ich mit dem Standardhandler bereitstellen möchte. (eine statische Datei senden)
ich will alleshttp://myserver.com/xxxxxum zum mod_perl mit /, /index.html, robots.txt und einigen Unterordnern zu gelangen, die statisch bereitgestellt werden sollen.
Ich habe verschiedene Kombinationen ausprobiert, aber es funktioniert einfach nicht. Es scheint keine Möglichkeit zu geben, <LocationMatches> oder Ähnliches auszuschließen.
Wenn ich die PERL-Variable definiere,allesgeht zum Skript, wenn es ausgeschaltet ist, kann ich die statischen Daten trennen, aber offensichtlich funktioniert das Skript nicht.
<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>
Ich schätze, dass das Hacken des Moduls zur Verwendung interner Weiterleitungen funktionieren könnte, aber es ist hässlich.
Ich verwende Gentoo Linux, das alle Dateien im Ordner module.d/ und dann im Ordner vhost.d enthält. Ich habe alle diese Ordner überprüft und alle Verzeichnis- oder Standortordner entfernt, es gab keine!
Vielen Dank.
Antwort1
Das ist einer der Gründe, warum ich mich seit langem über mod_perl ärgere und warum ich letztendlich froh bin, dass es Ruby on Rails gibt.
Grundsätzlich können Sie nicht teilen, wo Ihre Perl-Skripte und wo der statische Inhalt gespeichert sind. Sie müssen in unterschiedlichen Verzeichnissen gespeichert sein. Ich habe oft geschummelt und unterschiedliche Hostnamen für den statischen und dynamischen Inhalt verwendet, wodurch das ganze Problem gelöst wurde. Sie können auch ein wenig mehr darüber lesenSo legen Sie statischen Inhalt in ein Unterverzeichnisvielleicht.