mod_casemod_case module is designed to help ProFTPD be
case-insensitive, for those sites that may need it (e.g. those
that are migrating from a Windows environment or have mounted Windows
filesystems).
The mod_case module works by performing two checks on the
filename used in FTP commands. First, mod_case will scan the
directory to see if there is already a file whose name exactly matches the
given filename. If not, mod_case will then looks for any
case-insensitive matches.
This module is contained in the mod_case.c file for
ProFTPD 1.3.x, and is not compiled by default. Installation instructions
are discussed here.
The most current version of mod_case can be found at:
https://github.com/Castaglia/proftpd-mod_case
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.
<VirtualHost>, <Global>
The CaseEngine directive enables or disables the module's
runtime case-matching engine. If it is set to off this module does no
case-insensitive checking. Use this directive to disable the module instead of
commenting out all mod_case directives.
<VirtualHost>, <Global>, <Anonymous>, <Directory>
The CaseIgnore directive is used to enable case-insensitive
matching, possibly on a per-FTP command basis. If it is set to off,
no case-insensitive matching is performed. If set to on, then
case-insensitive matcing is performed for all FTP commands that
mod_case handles (see below). Otherwise, one can configure
a cmd-list, which is a comma-separated list of FTP commands for
which mod_case is to do case-insensitive matching.
The mod_case module handles the following FTP commands:
APPE
CWD/XCWD
DELE
LIST
MDTM
MKD/XMKD
MLSD
MLST
NLST
RETR
RMD/XRMD
RNFR
RNTO
SITE CPFR (from mod_copy)
SITE CPTO (from mod_copy)
SITE CHGRP
SITE CHMOD
SIZE
STAT
STOR
Examples:
# Enable case-insensitivity for all FTP commands handled by mod_case CaseIgnore on # Enable case-insensitivity only for downloads CaseIgnore RETR # Enable case-insensitivity for uploads and downloads CaseIgnore APPE,RETR,STOR
<VirtualHost>, <Global>
The CaseLog directive is used to a specify a log file for
mod_case reporting and debugging, and can be done a per-server
basis. The path parameter must be the full path to the file to use for
logging. Note that this path must not be to a world-writable
directory and, unless AllowLogSymlinks is explicitly set to
on (generally a bad idea), the path must not be a symbolic
link.
If path is "none", no logging will be done at all; this
setting can be used to override a CaseLog setting inherited from
a <Global> context.
mod_case, copy the mod_case.c file into
proftpd-dir/contrib/after unpacking the latest proftpd-1.3.x source code. Then follow the usual steps for using third-party modules in proftpd:
./configure --with-modules=mod_case make make install