On 7/31/08, Bobby Jack <[EMAIL PROTECTED]> wrote:
> Thanks, solprovider. I had to look up your TLAs, but I am familiar with most 
> of the points you make in your post, and tend to agree :)

I assume you know URL, CMS, and SSL.
TMI = Too Much Information - I was halfway into a rant and used the
TLA question as an apology if reading the extra text was wasting your
time.
HTH = Hope This Helps - Very common closing on support mailing lists.

FYI (For Your Information),  "IIUC" = If I Understand Correctly - used
later in this post.  (OK. a four letters is not a TLA.)

>  --- On Wed, 7/30/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>  > Whatever creates the URLs should look up the correct protocol.
> Of course, this would be ideal, but I'm not working with the ideal system, 
> unfortunately. The CMS does not appear to provide the functionality required 
> to achieve this. In short, navigational links are shared across pages. These 
> are relative for all; to achieve the correct setup, I'd need these to be 
> relative on "http://"-served pages, and absolute on "https://"; ones.
>
>  Short of duplicating the navigation structure (which is not trivially small) 
> and creating two copies to maintain, or implementing URL-rewriting logic in 
> the application server (which lies somewhere between very difficult and 
> impossible), I cannot see a way around this.
>
>  My current solution, therefore, is to simply leave everything as is in the 
> CMS, but implement redirects in apache to convert
>  "https://page/should/not/be/secure";
>  into
>  "http://page/should/not/be/secure";
>  (whose original link would have been relative: "/page/should ...")
>  Admittedly, this is not the best solution; it's a workaround. Workarounds 
> are always sub-optimal, but there are often things that need to be 
> worked-around when using proprietary software.
>
>  Many thanks for your feedback,
>  - Bobby
>
>  P.S. The whole reason I'm looking into this IS to ensure that all forms 
> (yes, even the 'contact us' one) are accessed via https. If it's a choice 
> between that setup + a nasty workaround or not having that setup, IMHO (and, 
> I believe, yours), the former is preferable.

Agreed.

IIUC, HTTPS pages contain relative links that are not currently
available using HTTPS -- you are attempting to internally serve the
pages by internally redirecting the URL to the HTTP server.

A solution is let HTTPS try to serve the page.  If this fails, pass to
a CGI program that attempts to find the page with HTTP.  If the page
still cannot be found, return an error page.

ErrorDocument 404 /cgi-bin/TryHttpBeforeErroring

TryHttpBeforeErroring pseudocode:
If REDIRECT_SERVER_PORT = 443 Then
   Get page from "http://"; + REDIRECT_SERVER_NAME + REDIRECT_URL
   If success, send page and exit.
For all other cases, return a "Not Found" error page.

RewriteRules would not require a CGI program, but requires that httpd
differentiate between HTTP and HTTPS pages.  Using ErrorDocument does
not require the differentiation -- pages are automatically served by
the best method without affecting the browser.

Disclaimer: Use the ideas in this post at your own risk.  I have not
tested anything.

HTH,
solprovider

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
   "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to