httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From (Ralf S. Engelschall)
Subject ANNOUNCE: mod_rewrite v2.0
Date Sat, 20 Jul 1996 18:27:03 GMT


                       Ralf S. Engelschall's

                Apache Server Module ``mod_rewrite''

                      Version 2.0 (20-07-1996)


    This is an Apache Server module which uses a regular-expression
    parser to re-write requested URLs on the fly. It can use 
    external databases (either plain text, or DBM) to provide a
    mapping-function or generate real URIs (including QUERY_INFO 
    parts) for internal subprocessing or external request redirection. 

  New To Version 2.0:

    [due to the amount of changes, the version number jumped from
     1.7 (the last official release) directly to 2.0]

    o   ** now mod_rewrite contains per-directory configuration (.htaccess)
        file support, i.e. all RewriteXXX directives now work also in per-dir
        configs. The only difference: In per-dir context the URL to the local
        directory gets automatically stripped before the rules get applied
        and automatically added back after the substitution part was used.
    o   ** now mod_rewrite contains proxy support: A new flag proxy|P was
        added to allow you to force a substitution part of a RewriteRule to
        be internally thrown through the proxy module. This like a enhanced
        ProxyRemote directive where "enhanced" means: 1. It also can occur in
        per-dir context, 2. it is a real RewriteRule and so it uses the
        regexp/subsitution power! This enables you e.g. to proxy only some
        files in a directory, etc.

    o   changed syntax of RewriteRule directive:
        now the config line is parsed by ourself and
        the flags part "[...]" now is the optional third field

    o   added a new flag: "type|T=<mime-type>" to be able to force
        a MIME type (this is needed to simulate a ScriptAlias directive!)

    o   added a new flag: "nosubreq|NS" which, when set, causes
        the RewriteRule to be ignored on subrequests (this is needed to
        prevent some rules from happen when a subrequest is started e.g. by
        mod_include to test the various index.* files)

    o   added a new flag: "chain|C" to chain rules, 
        i.e. if a rule contains a "chain" flag it gets chained with following
        rule and if it doesn't apply, this next rule is skipped!  This was
        introduced to be able to apply rule(s) only if the previous one(s)
        was/were successful.

    o   now you can use a RewriteRule substitution part (the output) named
        "-" which means: NO substitution. Sounds silly? Think about it twice
        with the chain flag in mind! This provides the ability to do
        preceding MATCHING-ONLY rules for real ones, i.e. you can use more
        than one regexp to match a URL before the subsitution part (of the
        last rule) gets applied!

    o   created mod_rewrite_compat.c, a module which makes
        the transition from mod_alias and mod_userdir to mod_rewrite.  This
        module contains stub-codes which implement backward-compatibility
        for these replaced modules!

    o   written a mod_rewrite_info.c which displays
        information about internal mod_rewrite structures This approach is
        similar to mod_status and mod_info

    o   now mod_rewrite use a real API version identifier
        instead of STANDARD_MODULE_STUFF to make sure that no one will use
        mod_rewrite with older versions of the API.

    o   added more rewrite.log outputs to see more about
        the processing inside mod_rewrite.

    o   fixed a serious bug with the RewriteEngine command: it
        was not overtaken in merge_server_config(), so it was sometimes seen
        as not set.  This should fix the problem with VirtualHost

    o   changed all functions and data structures to static type to 
        prevent mod_rewrite conflicting with the other Apache code

    o   a lot of function name changes, some code position changes

    o   greatly enhanced the documentation

    o   tested with the official Apache release 1.1.1: works fine.

                                        Ralf S. Engelschall    

View raw message