[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