OVERVIEW OF NEW FEATURES IN APACHE 1.3 New features with this release, as extensions of the Apache functionality For more information, see the documentation included with this release (htdocs/manual/) or http://www.apache.org/docs/ In addition to a number of bug fixes and internal performance enhancements, Apache 1.3 has the following specific new user features: *) Support for Windows NT/95 Apache now supports the Windows NT and Windows 95 operating systems, as well as the Unix systems supported in previos releases. Although the Windows version of Apache may not be perform as well as on the Unix systems for which Apache was originally written, the ability to run on Windows gives Apache the ability to run on a large number of web servers it was not previously able to. *) Regular Expression support for Alias and Redirect New AliasMatch, ScriptAliasMatch, and RedirectMatch directives allow for the use of regular expression matching. Additionally, new , , and sections provide a new syntax for regular expression sectioning. *) New "Magic" MIME-typing module A new module, the optional mod_mime_magic, has been added. It uses "magic numbers" and other hints from a file's contents to figure out what the contents are. It then uses this information to set the file's media type, if it cannot be determined by the file's extension. *) Directory indexing modules split The mod_dir module has been split in two, with mod_dir handling directory index files, and mod_autoindex creating directory listings. *) Support for Directory Icon Sizing The mod_autoindex module provides listings of directory contents when appropriate. If the FancyIndexing option is enabled, each file in the list is preceded by an icon representing the content type. In earlier versions of Apache, the HTML IMG tags for these icons weren't sized, so the browser had to wait until the images were loaded before it could lay out the page. With 1.3, the IndexOptions directive has two new keywords which allow you to control whether pre-sized IMG tags are used. This can substantially speed up the display of large directory listings. *) AccessFileName Enhancement The directive can now take more than one filename. This lets sites serving pages from network file systems and more than one Apache web server, configure access based on the server through which shared pages are being served. *) HostNameLookups now defaults to "Off" The HostNameLookups directive now defaults to "Off". This means that, unless explictly turned on, the server will not resolve IP addresses into names. This was done to spare the Internet from unneccessary DNS traffic. *) New child_init function for module API A new phase for Apache's API is called once per "heavy-weight process," before any requests are handled. This allows the module to set up anything that need to be done once per processes. For example, connections to databases. *) New child_exit function for module API A new phase for Apache's API is called prior to termination of a server child, e.g. when max_requests_per_child is reached. This allow for modules to tear down anything that need to be done once per processes. For example, connections to databases. *) Totally overhauled mod_rewrite: First the last officially available release of mod_rewrite (3.0.9) was integrated into the Apache source repository. Additionally to the fact that this fixed some bugs, mod_rewrite now is no longer developed and maintained _externally_ by the original author Ralf S. Engelschall. Instead he has officially joined the Apache Group and gifted the complete sources to it (removed the shared copyright), so further development takes place directly at the Apache Groups source repository. No more version synchronizations are needed in the future. Additionally the rewriting engine was both enhanced and cleaned up by introducing a generic way to interpolate backreferences. The noticeable effect is that one now can use backreferences at nearly any string construction point (RewriteRule subst string, RewriteCond test string, ENV flag key/value, etc.) to access the parts of RewriteRule and RewriteCond patterns via $N and %N. *) Simple transport and i/o hooks in place It is possible to re-define the standalone_main function (with -DSTANDALONE_MAIN) so modules may plugin support for transport protocols other than tcp, e.g. DCE RPC A new slot in the BUFF structure `t_handle' is provided to store the plugin's transport related structures. Support for sfio can be enabled with -DB_SFIO, which allows modules to re-define lowest-level reads and writes so i/o may travel through something other than a tcp socket. In addition, sfio support allows plugin modules to manipulate the output of all modules, e.g. parsing the output of CGI programs. *) New dbmmange script A new Perl5 version of dbmmange allows modification of various databases, Berkley DB, ndbm and gdbm. Security has been tightened such that passwords will no longer be echoed to the terminal, the seed for srand is more random and `add' will not overwrite and existing user, use the new `update' command instead. New commands include the `check' command to check a users' password and the `import' command to convert existing password text-files or dbm files exported with `view'. *) New API function: is_initial_req() The function returns true only for the initial call during a given HTTP request. If the request is a sub-request or internal redirect, the function will return false.