[Catalyst] uri_for adding :443 to URL when HTTPS=on
garrison at zeta.org.au
Tue Sep 4 18:08:31 GMT 2007
On 4/9/07 at 4:44 PM +0100, Matt S Trout
<dbix-class at trout.me.uk> wrote:
>> REMOTE_HOST seems to be the client host name, not the
>>server. So I don't think that's the one you meant. Did you
>>mean SERVER_NAME instead? Since SERVER_NAME seems to give the
>>value I expect, I'll switch to using that.
>Damn. Yes, sorry.
>Rewrite setup configs always fall out of my head if I don't do one for a
Or even a few hours for some of us. ;-)
>> Still doesn't really solve the core issue though.
>I thought the core issue was that your rewrite rules were broken?
Sorry for not being clear. I was giving that info as background
and to show how I was working around the issue.
>> When I generate a URI string with $c->uri_for(...) and
>>HTTPS=on, then I get :443 as part of the URI string. What can
>>I do in my Catalyst config (or elsewhere) to prevent :443
>>being included in the URI string?
>Have you checked to see what your webserver's giving Catalyst? I'm not
>sure this isn't just uri_for naively working with what the webserver gives
To confirm, I'm using a rewrite rule such as:
# uses custom port on backend to indicate https - sets HTTPS=on
# Catalyst app base is /progs
I'm printing this to error_log (request for https://www.resultsplus.com.au/progs/):
INFO - ***Root::auto HTTPS: on
INFO - ***Root::auto HTTP_HOST: www.resultsplus.com.au:8627
INFO - ***Root::auto c->req->path:
INFO - ***Root::auto c->req->secure: 1
INFO - ***Root::auto c->req->base: https://www.resultsplus.com.au:443/progs/
INFO - ***Root::auto c->req->uri: https://www.resultsplus.com.au:443/progs/
INFO - ***Root::auto c->req->uri->scheme: https
INFO - ***Root::auto c->req->uri->opaque: //www.resultsplus.com.au:443/progs/
INFO - ***Root::auto c->req->uri->port: 443
INFO - ***Root::auto c->req->uri->host_port: www.resultsplus.com.au:443
INFO - ***Root::auto c->uri_for: https://www.resultsplus.com.au:443/progs/
I believe this is an issue with the URI module adding port 443
since the port in the request is not the 'standard' https port.
Assuming that is accurate, what is the correct way in Catalyst
to 'correct' the URI value? Is it a bug or something I need to
be doing differently?
Charlie Garrison <garrison at zeta.org.au>
PO Box 141, Windsor, NSW 2756, Australia
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
More information about the Catalyst