Apache Week
   
   Issue 144, 8th January 1999:  

Copyright 1996-2005
Red Hat, Inc.

In this issue


Apache Status

Apache Site: www.apache.org
Release: 1.3.3 (Released 9th October 1998) (local download sites)
Beta: None

Apache 1.3.3 is the current stable release. Users of Apache 1.2.6 and earlier should look at upgrading to this version. Read Guide to 1.3.3 for information about changes between 1.2 and 1.3.3.

Bugs in 1.3.3

These bugs have been found in 1.3.3 and will be fixed in the next release.

  • Apache ported to Cyberguard V2 port. PR#3336.
  • The Apache -S option shows the virtual host configuration, but unlike the -t option it then continued and ran Apache. This has now been changed to exit after displaying the configuration.
  • In a log format, the %v and %p log options log the information from the request, rather than the official ServerName and Port.
  • The proxy module was not allowing the (valid) syntax http://host:/path. PR#3530.
  • The directives UseCanonicalName and ContentDigest are now allowed in .htaccess files if the Options option is in effect, rather than the AuthConfig option.
  • In a directory index, the SuppressColumnSorting option could be overridden by specifying the sort option on the URL query string.

Patches for bugs in Apache 1.3.3 will be made available in the apply_to_1.3.3 subdirectory of the patches directory on the Apache site. Some new features and other unofficial patches are available in the 1.3 patches directory. For details of all previously reported bugs, see the Apache bug database and known bugs pages. Many common configuration questions are answered in the Apache FAQ.

Checking dynamically loaded modules

A check has been added so that when Apache loads a file with LoadModule it can ensure that it really is an Apache module.

Major overhaul of mod_negotiation

The negotiation module, mod_negotiation, has been extensively updated. It is now compliant with the latest draft of the HTTP/1.1 specification (rev 06). Changes for this include the use of language tags with more than two components, correct processing of empty Accept-* request headers, proper handling of identity encodings, and support for qualify values (q values) on encodings.

Support has also been added for the Transparent Content Negotiation (TCN) standards (RFC2295 and RFC2296), although currently these are not fully implemented.

Other changes are part of this overhaul are that non-text media types (i.e. types other than text/* are treated has having no character set, variants are sorted into order before being processed rather than relying on the arbitrary order that they are read from the directory, and various inefficiences and unneccessary use of memory have been removed.

Setting an index directory order

A new directive has been added to specify a default sort column for FancyIndex directory indexes. The new directive is IndexOrderDefault, and is following by two arguments which control the sort order: the first argument is either Ascending or Descending, and the second is one of Name, Date, Size or Description. These give the sort column and the order of the sort. When used with the SupportColumnSorting index option this gives the sort order and does not allow the client to change it.

Building Apache on Windows 95

The Windows makefile distributed with Apache only worked on Windows NT systems. Two new makefiles have been added for use on Windows 95: Makefile_win32.txt generates a release build, and Makefile_win32_debug.txt generates a debug build.

Mod_rewrite additions

Two new features have been added to mod_rewrite. The first allows for case insensitive rewriting in RewriteRule. This avoids the need for ugly syntaxes such as [pP][aA][tT][hH]. Secondly two new internal map functions have been added: escape and unescape convert to and from %-encoded forms on URLs.


Macros in configuration files

Many configuration files have the same directives repeated multiple times. For example, the same set of directives might need to be included in multiple virtual hosts, or the same set of deny and allow rules might be used in multiple directory containers. One way of avoiding repeating directives is to pre-process the configuration files (for example, using m4 or perl). However there is now a module available which implements simple macros in the Apache configuration file.

mod_macro is a third party module, available under the GPL license. When added to Apache it adds a new <Macro>...</Macro> container for defining macros and a Use directive to use a macro.

For example, the following configuration would create a macro implementing a set of access restrictions:

  <Macro AllowLocalOnly>
  order deny,allow
  deny from all
  allow from .apacheweek.com

  AuthName "Local Users Only"
  AuthType Basic
  AuthUserFile /usr/local/httpd/.htpasswd
  require valid-user

  satisfy Any
  </Macro>

This can then be used multiple times, for example:

  <Directory /usr/local/httpd/htdocs/local-stuff>
  Use AllowLocalOnly
  </Directory>

  <Directory /usr/local/httpd/htdocs/cgi-bin-local>
  Use AllowLocalOnly
  Options +ExecCGI
  </Directory>

Macro definitions can also include arguments.


Apache in the News

NewMedia reports on the increasing acceptance of open source in business, in Set Your Code Free.


Comments or criticisms? Please email us at editors@apacheweek.com