Apache2-Layer
view release on metacpan or search on metacpan
lib/Apache2/Layer.pm view on Meta::CPAN
my $r = shift;
$r->filename($file);
$r->finfo($finfo);
return Apache2::Const::DECLINED;
});
return Apache2::Const::DECLINED;
}
}
}
return Apache2::Const::DECLINED;
}
1;
__END__
=pod
=encoding utf-8
=head1 NAME
Apache2::Layer - Layers for DocumentRoot
=head1 VERSION
version 1.103360
=head1 SYNOPSIS
# in httpd.conf
DocumentRoot "/usr/local/htdocs"
# load module
PerlLoadModule Apache2::Layer
# enable layers for whole server
EnableDocumentRootLayers On
# disable location strip
DocumentRootLayersStripLocation Off
# paths are relative to DocumentRoot
DocumentRootLayers layered/christmas layered/promotions
<VirtualHost *:80>
...
# layers enabled for this vhost
</VirtualHost>
<VirtualHost *:80>
...
DocumentRoot "/usr/local/vhost2"
# disabled by default
EnableDocumentRootLayers Off
<LocationMatch "\.png$">
# layer images only
EnableDocumentRootLayers On
DocumentRootLayers images_v3 images_v2
</LocationMatch>
<Location "/images">
DocumentRootLayersStripLocation On
</Location>
<Location "/images/company1">
DocumentRootLayers company1/images default/images
</Location>
<Location "/images/company2">
DocumentRootLayers company2/images default/images
</Location>
</VirtualHost>
<VirtualHost *:80>
...
PerlOptions +MergeHandlers
PerlTransHandler My::Other::Handler
</VirtualHost>
=head1 DESCRIPTION
Create multiple layers to allow incremental content modifications.
If file was found in layered directory it will be used instead of one from
C<DocumentRoot>.
Loaded module adds itself as C<PerlTransHandler> and
C<PerlMapToStorageHandler>, so please remember to use
PerlOptions +MergeHandlers
if you want to define your own handlers for those phases.
=head1 DIRECTIVES
L<Apache2::Layer> needs to be loaded via C<PerlLoadModule> due to use of
following directives:
=head2 EnableDocumentRootLayers
Syntax: EnableDocumentRootLayers On|Off
Default: EnableDocumentRootLayers Off
Context: server config, virtual host, <Location*
Enable use of L<"DocumentRootLayers">.
=head2 DocumentRootLayersStripLocation
Syntax: DocumentRootLayersStripLocation On|Off
Default: DocumentRootLayersStripLocation On
Context: server config, virtual host, <Location*
Remove the path specified in E<lt>LocationE<gt>, E<lt>LocationMatchE<gt> from
the URI before searching for layered file.
That allows to simplify the file hieratchy tree, eg.
<Location "/images">
DocumentRootLayersStripLocation On
</Location>
<Location "/images/company1">
DocumentRootLayers company1/images default/images
</Location>
<Location "/images/company2">
DocumentRootLayers company2/images default/images
</Location>
for following requests:
/images/company1/headers/top.png
/images/company2/headers/top.png
those paths would be searched:
company1/images/headers/top.png default/images/headers/top.png
company2/images/headers/top.png default/images/headers/top.png
but with C<DocumentRootLayersStripLocation Off>:
company1/images/images/company1/headers/top.png default/images/images/company1/headers/top.png
company2/images/images/company2/headers/top.png default/images/images/company2/headers/top.png
=head2 DocumentRootLayers
Syntax: DocumentRootLayers dir-path1 [dir-path2 ... dir-pathN]
Context: server config, virtual host, <Location*
Specify content layers to be used on top of C<DocumentRoot>.
If the I<dir-path*> is not absolute it is assumed to be relative to
C<DocumentRoot>.
Directories are searched in order specified and first one containing the file
is used.
If file does not exists in any of them module falls back to C<DocumentRoot>.
=head1 SEE ALSO
Module was created as a result of upgrade existing application from mod_perl1
to mod_perl2 and is a replacement for L<Apache::Layer>.
=head1 AUTHOR
Alex J. G. BurzyÅski <ajgb@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Alex J. G. BurzyÅski <ajgb@cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 0.750 second using v1.01-cache-2.11-cpan-df04353d9ac )