[Catalyst] uri_for adding :443 to URL when HTTPS=on

Matt S Trout dbix-class at trout.me.uk
Tue Sep 4 16:44:00 GMT 2007


On Tue, Sep 04, 2007 at 11:24:43PM +1000, Charlie Garrison wrote:
> Good evening,
> 
> On 3/9/07 at 7:54 PM +0100, Matt S Trout 
> <dbix-class at trout.me.uk> wrote:
> 
> >> The above error makes sense in the context of 
> >>frontend/backend  apache with rewrite rules.
> >>      RewriteRule ^/login(.*)$     
> >>http://%{HTTP_HOST}:8627/progs/login$1 [P]
> >>     RewriteRule ^/progs/(.*)$    
> >>http://%{HTTP_HOST}:8627/progs/$1 [P]
> >
> >That's kinda broken, it's relying on the request header which a browser
> >could easily cock up.
> 
> Fair enough, although I've seen heaps of examples using 
> %{HTTP_HOST} so I followed along.
> 
> >I suspect %{REMOTE_HOST} would be better (see the mod_rewrite docs for
> >more info)
> 
> 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
few days.

> Still doesn't really solve the core 
> issue though.

I thought the core issue was that your rewrite rules were broken?

> 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
it.

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director    Want a managed development or deployment platform?
 Shadowcat Systems Ltd.  Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/                    http://www.shadowcat.co.uk/ 



More information about the Catalyst mailing list