Never been to TextSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

« Newer Snippets
Older Snippets »
3 total  XML / RSS feed 

A simple WebDAV repository with user directories

The following snippet goes into the main Apache config (or a VirtualHost config). It allows you to create a simple repository access by WebDAV, with distinct logins for your users. All users must authenticate to access the /webstore directory, they can browse and see all subdirectories, but they can only upload into their own /webstore/user directory, or into any directory which may be created under /webstore, but not mentioned in the config.

You still need to have the mod_dav module installed and loaded, and to actually add all users into the dav.digest.passwd file using the htdigest command:

htdigest dav.digest.htpasswd foobar.com foo


The +Indexes option also makes it to possible to browse the repository using a regular web browser (with no upload rights, of course).

<Location /webstore>
  DAV On
  Options +Indexes
  AuthType Digest
  AuthName foobar.com
  AuthDigestFile /home/foobar/etc/dav.digest.passwd
  Require valid-user
  ForceType text/plain
Location>
/webstore/foo">
  Require valid-user
  
    Require user foo
  

"/webstore/bar">
  Require valid-user
  
    Require user bar
  

Serve XHTML 1.1 Properly

Place this in a .htaccess file or your Apache configuration. Note that this will redirect noncompliant users to a chosen URL. All XHTML 1.1 pages must be saved with the .xhtml extension.

AddType application/xhtml+xml .xhtml

<IfModule mod_security.c>
    SecFilterEngine On
    SecFilterScanOutput On
    SecFilterOutputMimeTypes "application/xhtml+xml"
    SecFilterDefaultAction "pass"
    SecFilterSelective "HTTP_ACCEPT" "!application/xhtml\+xml" "redirect:http://www.webstandards.org/upgrade/"
IfModule>

Mixed example of mod_deflate configuration for httpd.conf

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
SetInputFilter DEFLATE
#the two above compress everything unless excluded below
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary              
SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary             
SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary     
SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary      
SetEnvIfNoCase Request_URI \.plist$ no-gzip dont-vary   
# Below is an example where you get rid of what's above and you explicity compress
AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp application/x-httpd-eruby text/html 
DeflateFilterNote ratio
DeflateCompressionLevel 9
IfModule>
« Newer Snippets
Older Snippets »
3 total  XML / RSS feed