|
Jorey Bump
list at joreybump.com
Sun Nov 5 12:53:15 EST 2006
Graham Dumpleton wrote:
> For the first, when a request arrives against a physical directory
> and there is no trailing slash on the URL, Apache (unless it is
> disabled), will send a redirect back to the browser forcing it send
> the request again but with a trailing slash added. By doing this, it
> is helping the browser to understand what the effective base URL is
> such that if relative URLs are then used to address other resources
> within that directory, it will be able to construct the URL properly.
>
> Thus, if we have a filesystem structure:
>
> /some/path/directory /some/path/directory/index.html
> /some/path/directory/file-1.html
>
> and we pretend that the URL to access it is the same. If a URL
> arrives which is:
>
> /some/path/directory
>
> then Apache sends a redirect back to the browser asking it to
> re-request the resource with the URL:
>
> /some/path/directory/
An interesting side effect of this is how it affects handlers invoked in
a Location container:
<Location /virtual>
SetHandler python-program
# module must be in PythonPath!
PythonHandler virtual
PythonDebug On
</Location>
If no corresponding directory exists, the handler can be invoked with or
without a trailing slash:
http://host/virtual
http://host/virtual/
But when a matching directory exists, Apache will send a redirect to the
browser, forcing it to always use:
http://host/virtual/
This has nothing to do with Publisher, but it shows that factors outside
of mod_python can also have an influence on relative links.
|