You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2004/04/25 01:57:53 UTC

DO NOT REPLY [Bug 28574] New: - Return links on Customizable ErrorDocument pages are broken.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=28574>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=28574

Return links on Customizable ErrorDocument pages are broken. 

           Summary: Return links on Customizable ErrorDocument pages are
                    broken.
           Product: Apache httpd-2.0
           Version: 2.0.49
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Core
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: Rolf.Sponsel@kstr.lth.se
                CC: Rolf.Sponsel@kstr.lth.se


The return links, i.e. the links linking back to the refering page, in the
Customizable ErrorDocument Pages fail to return to their refering page, if the
refering page's URI had a non-null QUERY_STRING, e.g. '/index.html?query_string'.

The return link is represented as '/index.html%3fquery_string', i.e. to an page
that most likely does not exist, and thus will result in a "HTTP 404 : Object
not found" error instead of returning to the user back to
'/index.html?query_string'.

I noticed that the URL in these pages is inserted as <!--#echo encoding="url"
var="HTTP_REFERER" -->, and thus url-encodes the separating '?' between the
DOCUMENT_URI and QUERY_STRING, i.e. represents it as '%3f' instead of just '?'.

The following pages are affected by this, IMHO, bug:

HTTP_GONE.html.var         ( one instance per locale )
HTTP_NOT_FOUND.html.var    ( two instance per locale )

and possibly also:

HTTP_UNATUHORIZED.html.var ( one instance per locale )


I'm not sure if it is sufficient to change the encoding to "none", or if there
is need to explicitly represent these return-links with an explicit '?'
separating the DOCUMENT_URI and QUERY_STRING. Probably the latter approach is
needed.


You should be able to trigger this behaviour by:

1). Enable Customizable ErrorDocuments, and restart httpd.
2). Create a page, e.g. index.html, containing a link to
    a page that doesn't exsit, e.g. '/FILE-DOES-NOT-EXIST'.
3). Access that page via 'http://localhost/index.html?query_string'.
4). Click on the (broken) link to '/FILE-DOES-NOT-EXIST',
    which should trigger a 'Error: 404 - Object not found!'
    error response.
5). Click on either the 'referring page', or 'that page' link
    in order to - at least intending to - return to your
    '/index.html' page. This will fail, and trigger another
     404 error instead of returning to '/index.html?query_string'.


As always; should you need more information, the just let me know.

Best Regards,
Rolf Sponsel

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org