Re: Need help with url rewrite
On Fri, Jul 4, 2014 at 8:42 PM, Jeffrey Scott Flesher Gmail jeffrey.scott.fles...@gmail.com wrote: If a Picture is worth a 1000 Words: If the url does not have any path like this: http://mad-news.net/ acl has_ww_uri path_beg -i /ww returns false reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri http://mad-news.net/ww/en/ it adds the ww, the program with is wthttpd (Wt) defaults to en for language control Just to show you how the site looks at port 8060: http://mad-news.net:8060/ww/en/ If I comment the code, the site looks fine. Note: I want only the first path to work: http://mad-news.net/this/ww fails to work for the rule, it does this: http://mad-news.net/ww/this/this/ww which is not what I want, so how do I write a rule to cover this? Note: If the ww is not there, the Wt app will ignore the request, results in 404 http://wittywizard.org/ vs http://wittywizard.org/ww. There is no way around this behavior is I want to have a pretty URL. My whole config, Note that it works the same in 1.4 and 1.5, but this is: HA-Proxy version 1.5.1 2014/06/24: global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 user haproxy group haproxy daemon # pidfile /var/run/haproxy.pid # stats socket /var/run/haproxy.stat mode 600 # stats socket /tmp/haproxy defaults log global modehttp option httplog option dontlognull retries 3 option redispatch maxconn1000 #contimeout 5000 # haproxy 1.4 timeout connect 5000 #clitimeout 5 # haproxy 1.4 timeout client 5 #srvtimeout 5 # haproxy 1.4 timeout server 5 frontend wt bind 216.224.185.71:80 # Set inside Witty Wizard main.cpp acl has_ww_uri path_beg -i /ww reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri redirect prefix http://wittywizard.org code 301 if { hdr(host) -i www.wittywizard.org } # Note: see wthttpd.sh session-id-prefix acl srv1 url_sub wtd=wt-8060 acl srv1_up nbsrv(bck1) gt 0 use_backend bck1 if srv1_up srv1 # Second Thread # Note: see wthttpd.sh session-id-prefix # acl srv2 url_sub wtd=wt-8061 # acl srv2_up nbsrv(bck2) gt 0 # use_backend bck2 if srv2_up srv2 has_ww_uri # default_backend bck_lb # backend bck_lb balance roundrobin #server srv1 108.59.251.28:8060 track bck1/srv1 server srv1 216.224.185.71:8060 track bck1/srv1 backend bck1 balance roundrobin #server srv1 108.59.251.28:8060 check server srv1 216.224.185.71:8060 check backend bck2 balance roundrobin #server srv2 108.59.251.28:8061 check server srv2 216.224.185.71:8060 check As you can see, the path seems to have changed, not sure what is going on, any ideas? Thanks On Thu, 2014-07-03 at 22:40 +0200, Baptiste wrote: On Thu, Jul 3, 2014 at 9:38 PM, Jeffrey Scott Flesher Gmail jeffrey.scott.fles...@gmail.com wrote: I have a url that always begins with ww, ie http://domain.tdl/ww/en/..., I want to rewrite the url to include the ww, I tried the below, it works, but changes the path or something, because it cause the resources like css and images to not appear (404), does anyone know how to fix this or do this the right way? acl has_ww_uri path_beg -i /ww reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri Hi Jeffrey, Can you clarify a bit your question, cause you're confusing me. please send us an example of what you get in HAProxy and how you want it out after HAProxy has rewritten it. Baptiste Jeffrey, I'm sorry, I can't answer you, because I can't understand what you mean in your emails. Baptiste
Re: Need help with url rewrite
If a Picture is worth a 1000 Words: If the url does not have any path like this: http://mad-news.net/ acl has_ww_uri path_beg -i /ww returns false reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri http://mad-news.net/ww/en/ it adds the ww, the program with is wthttpd (Wt) defaults to en for language control Just to show you how the site looks at port 8060: http://mad-news.net:8060/ww/en/ If I comment the code, the site looks fine. Note: I want only the first path to work: http://mad-news.net/this/ww fails to work for the rule, it does this: http://mad-news.net/ww/this/this/ww which is not what I want, so how do I write a rule to cover this? Note: If the ww is not there, the Wt app will ignore the request, results in 404 http://wittywizard.org/ vs http://wittywizard.org/ww. There is no way around this behavior is I want to have a pretty URL. My whole config, Note that it works the same in 1.4 and 1.5, but this is: HA-Proxy version 1.5.1 2014/06/24: global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 user haproxy group haproxy daemon # pidfile /var/run/haproxy.pid # stats socket /var/run/haproxy.stat mode 600 # stats socket /tmp/haproxy defaults log global modehttp option httplog option dontlognull retries 3 option redispatch maxconn1000 #contimeout 5000 # haproxy 1.4 timeout connect 5000 #clitimeout 5 # haproxy 1.4 timeout client 5 #srvtimeout 5 # haproxy 1.4 timeout server 5 frontend wt bind 216.224.185.71:80 # Set inside Witty Wizard main.cpp acl has_ww_uri path_beg -i /ww reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri redirect prefix http://wittywizard.org code 301 if { hdr(host) -i www.wittywizard.org } # Note: see wthttpd.sh session-id-prefix acl srv1 url_sub wtd=wt-8060 acl srv1_up nbsrv(bck1) gt 0 use_backend bck1 if srv1_up srv1 # Second Thread # Note: see wthttpd.sh session-id-prefix # acl srv2 url_sub wtd=wt-8061 # acl srv2_up nbsrv(bck2) gt 0 # use_backend bck2 if srv2_up srv2 has_ww_uri # default_backend bck_lb # backend bck_lb balance roundrobin #server srv1 108.59.251.28:8060 track bck1/srv1 server srv1 216.224.185.71:8060 track bck1/srv1 backend bck1 balance roundrobin #server srv1 108.59.251.28:8060 check server srv1 216.224.185.71:8060 check backend bck2 balance roundrobin #server srv2 108.59.251.28:8061 check server srv2 216.224.185.71:8060 check As you can see, the path seems to have changed, not sure what is going on, any ideas? Thanks On Thu, 2014-07-03 at 22:40 +0200, Baptiste wrote: On Thu, Jul 3, 2014 at 9:38 PM, Jeffrey Scott Flesher Gmail jeffrey.scott.fles...@gmail.com wrote: I have a url that always begins with ww, ie http://domain.tdl/ww/en/..., I want to rewrite the url to include the ww, I tried the below, it works, but changes the path or something, because it cause the resources like css and images to not appear (404), does anyone know how to fix this or do this the right way? acl has_ww_uri path_beg -i /ww reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri Hi Jeffrey, Can you clarify a bit your question, cause you're confusing me. please send us an example of what you get in HAProxy and how you want it out after HAProxy has rewritten it. Baptiste
Need help with url rewrite
I have a url that always begins with ww, ie http://domain.tdl/ww/en/..., I want to rewrite the url to include the ww, I tried the below, it works, but changes the path or something, because it cause the resources like css and images to not appear (404), does anyone know how to fix this or do this the right way? acl has_ww_uri path_beg -i /ww reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri
Re: Need help with url rewrite
On Thu, Jul 3, 2014 at 9:38 PM, Jeffrey Scott Flesher Gmail jeffrey.scott.fles...@gmail.com wrote: I have a url that always begins with ww, ie http://domain.tdl/ww/en/..., I want to rewrite the url to include the ww, I tried the below, it works, but changes the path or something, because it cause the resources like css and images to not appear (404), does anyone know how to fix this or do this the right way? acl has_ww_uri path_beg -i /ww reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri Hi Jeffrey, Can you clarify a bit your question, cause you're confusing me. please send us an example of what you get in HAProxy and how you want it out after HAProxy has rewritten it. Baptiste
Re: Need help with url rewrite
I have a URL lets say: http://example.com I want it to be rewritten by haproxy to: http://example.com/ww All I want is for haproxy to rewrite the URL only if it does not have any path, ie http://example.com, then add the ww to it, so it becomes http://example.com/ww I do not have Apache on the server, so not mod_rewrite. I hope this is clear enough, not sure how else to say it. Thanks On Thu, 2014-07-03 at 22:40 +0200, Baptiste wrote: On Thu, Jul 3, 2014 at 9:38 PM, Jeffrey Scott Flesher Gmail jeffrey.scott.fles...@gmail.com wrote: I have a url that always begins with ww, ie http://domain.tdl/ww/en/..., I want to rewrite the url to include the ww, I tried the below, it works, but changes the path or something, because it cause the resources like css and images to not appear (404), does anyone know how to fix this or do this the right way? acl has_ww_uri path_beg -i /ww reqirep ^([^\ :]*)\ /(.*) \1\ /ww/\2 if !has_ww_uri Hi Jeffrey, Can you clarify a bit your question, cause you're confusing me. please send us an example of what you get in HAProxy and how you want it out after HAProxy has rewritten it. Baptiste