You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Ralf S. Engelschall" <rs...@engelschall.com> on 1996/08/05 23:08:23 UTC
ANNOUNCE: mod_rewrite v2.1
OK, now mod_rewrite 2.1 is out!
The official Announcement message is appended below, just FYI!
Version 2.1 has many of the changes included which Alexei requested last
time. It runs fine under 1.1.1 and also ran fine under a 1.2-dev two days
ago, but I was not able to get it 100% run under the 1.2-dev from today. Some
CGI-stuff seems broken in this version. I think this is due to the recently
incorporated stuff for util_script, etc.
Alexei: Please grab the 2.1 release, read the ChangeLog carefully and test it
with your 1.2-dev version and give me feedback again about what else I have
to change to make mod_rewrite fully acceptable for Apache 1.2 inclusion.
Please look over the complete code, because the code changed a lot since you
reviewed it last time! Thanks!
BTW: It ran fine with the new regex code of 1.2-dev. The problems I had last
time were really silly: V8 regexec gives back 1 on success, POSIX regexec
gives back 0 on success! This leads to the never matching patterns I reported
last time...
Greetings,
Ralf S. Engelschall
rse@engelschall.com
http://www.engelschall.com/~rse
-----------------------------------------------------------------------------------
ANNOUNCING
Ralf S. Engelschall's
Apache Server Module ``mod_rewrite''
<URL:http://www.engelschall.com/sw/mod_rewrite/>
Version 2.1 (05-08-1996)
Summary:
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.1:
o now mod_rewrite has a "RewriteLogLevel" directive to
adjust the amount of logfile verbosity (0=none .. 9=max)
o now only the "RewriteEngine" and "RewriteRule" directives
are allowed in per-dir context. This is ok, because the other
directives were only valid but still ignored in per-directory context
and although it can be useful to have special per-directory logfiles
and maps, this produces to much overhead and slows down the process.
And perhaps it can be risky for the admin to allow such things in
per-dir context.
o ** BIG INTERNAL CHANGES **: mod_rewrite now no longer operates on
the 'uri' field of the Apache API request structure. Instead it now
makes a transition to the 'filename' field and operates on that.
This fixes some problems with forced redirects where sometimes
filename stuff occured, e.g. ".www" parts at imagemaps, etc. And
the most important: mod_rewrite is being considered to be included
into the Apache 1.2 distribution. But before mod_rewrite has to be
really Apache API compliant and clean. This change is one of the last
great steps in this direction.
o Changed a lot of other internal stuff according to the requests of the
Apache Team to make mod_rewrite really API compliant.
- replacement of some std. C-library functions with pool-based ones.
- API compliant error handling
- removed most of the stat() which slow down the process
- changed back to STANDARD_MODULE_STUFF definition
- made gcc -Wall quiet
o added support for new POSIX regex library which is already included
in Apache 1.2-dev. It automatically uses the old Spencer V8 library
under 1.1.x and the new Spencer POSIX library above.
o fixed a problem with tilde-path expansion (/~user-> <homedir-of-user>):
Now this occurs only at the end of complete rewriting process and
only if the result will lead to either a redirect or a proxy
throughput.
o fixed problem with PATH_INFO handling: Now you can rewrite a
xxx.html to a xxx.cgi and still use a PATH_INFO for the xxx.html
o created mod_rewrite.h which holds common defines and shared function
prototypes for mod_rewrite.c, mod_rewrite_compat.c and
mod_rewrite_status.c
o now the rewriting engine does no longer apply rules on subrequests if
they are either proxy thoughput or forced redirect rules.
o documentation changes:
- changed Installation procedure
- added RewriteLogLevel
- added hardcore example to the documentation: net.sw
o now mod_rewrite has its own hand-made indiana logo, created
by myself via Adobe Photoshop.
-----------------------------------------------------------------------------------
Re: ANNOUNCE: mod_rewrite v2.1
Posted by Alexei Kosut <ak...@organic.com>.
On Mon, 5 Aug 1996, Ralf S. Engelschall wrote:
> Version 2.1 has many of the changes included which Alexei requested last
> time. It runs fine under 1.1.1 and also ran fine under a 1.2-dev two days
> ago, but I was not able to get it 100% run under the 1.2-dev from today. Some
> CGI-stuff seems broken in this version. I think this is due to the recently
> incorporated stuff for util_script, etc.
Hmm. I haven't gotten a chance to test this yet, but it sounds odd;
specifically, in the last two days (August 3rd through August 5th), there
haven't actually been any changes to the source. On August 2nd, there
were, however, many of them; perhaps that's what you're reffering to.
> Alexei: Please grab the 2.1 release, read the ChangeLog carefully and test it
> with your 1.2-dev version and give me feedback again about what else I have
> to change to make mod_rewrite fully acceptable for Apache 1.2 inclusion.
> Please look over the complete code, because the code changed a lot since you
> reviewed it last time! Thanks!
Looks pretty good. Haven't tested it, but looking over it, it looks okay.
One note, though: looking for _POSIX_H is not sufficient for determing
what version regex you're using. Not all POSIX regex implementations use
that define; HP-UX's uses _REGEX_INCLUDED, for example.
One thing you could do that would be rather simple is just to use
#if (MODULE_MAGIC_NUMBER >= 19960725)
That will indicate a version of Apache that has a regex implementation,
plus the pregcomp() and pregsub() functions.
> BTW: It ran fine with the new regex code of 1.2-dev. The problems I had last
> time were really silly: V8 regexec gives back 1 on success, POSIX regexec
> gives back 0 on success! This leads to the never matching patterns I reported
> last time...
Ugh. That's fun :)
Anyhow, while I still would like to test it some more, I think the code
seems to be at the point where it could be included in the Apache
distribution. Well, the mod_rewrite.c code. I haven't looked at
mod_rewrite_compat or mod_rewrite_status.
-- Alexei Kosut <ak...@organic.com> The Apache HTTP Server
http://www.nueva.pvt.k12.ca.us/~akosut/ http://www.apache.org/