Hello Massimo, I got a compile error when trying your suggestion of:
routes_in = [('/sam/$client/$a/$c/$f', '/$a/$c/$f/$client')] routes_out = [('/$a/$c/$f/$client','/sam/$client/$a/$c/$f')] Traceback (most recent call last): File "web2py.py", line 18, in <module> import gluon.widget File "/Users/mgheith/Desktop/web2py/gluon/widget.py", line 25, in <module> import gluon.main as main File "/Users/mgheith/Desktop/web2py/gluon/main.py", line 129, in <module> load() File "/Users/mgheith/Desktop/web2py/gluon/rewrite.py", line 356, in load p[sym].append(compile_regex(*items)) File "/Users/mgheith/Desktop/web2py/gluon/rewrite.py", line 454, in compile_regex return (re.compile(k, re.DOTALL), v, env or {}) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 190, in compile return _compile(pattern, flags) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 242, in _compile raise error, v # invalid expression sre_constants.error: redefinition of group name 'c' as group 4; was group 2 Perhaps someone can provide a working example? Thanks in advance. On Tuesday, July 29, 2014 12:04:50 AM UTC-5, Massimo Di Pierro wrote: > > The problem is that fater routes_in removes the prefix web2py does not > know any more whether you requested client1 or client2. Should the > application be able to discriminate? > > 1) If not, this should be handle through apache or nginx, not via routes. > If you want to use routes you can make one app "a" and another app "b" be a > symbolic link to "a". Then you do: > > routes_in = ( > > ('/sam/client1/a/$c/$f', '/a/$c/$f'), ( > '/sam/client2/a/$c/$f', '/b/$c/$f') > > ) > > routes_out = ( > > ('/a/$c/$f', '/sam/client1/a/$c/$f'), ('/b/$c/$f', > '/sam/client2/a/$c/$f') > > ) > > I would not recommend it. > > 2) if yes, you need to pass the clientX as args0: > > routes_in = [('/sam/$client/$a/$c/$f', '/$a/$c/$f/$client')] > routes_out = [('/$a/$c/$f/$client','/sam/$client/$a/$c/$f')] > > then your app should handle request.args[0] accordingly. > > On Thursday, 24 July 2014 14:07:06 UTC-5, Michael Gheith wrote: >> >> I plan on shoving this in the app specific routes.py - so it shouldn't >> mess with the other apps. >> >> I tried your code, but it didn't work as expected. You have the right >> idea though in regards to what I'm trying to do lyn2py. I want to >> literally shove anything in front of app/controller/function. It's just >> going to act as a URL prefix. Then later on, I will use the request object >> to extract this URL prefix and then change the db connection string. >> Having the URL prefix is mandatory, compared to just simply having it as >> args as you suggested earlier. If you can continue to help me I will buy >> you lunch :) I think we are really close! >> >> >> On Thursday, July 24, 2014 12:29:19 PM UTC-5, lyn2py wrote: >>> >>> I am not exactly sure I understand your question, and I don't know how >>> your code looks like, but you could try this: >>> >>> routes_in = ( >>> >>> ('/$anything/$a/$c/$f', '/$a/$c/$f/$anything') >>> >>> ) >>> >>> If you are going to have multiple apps though, this routing system will >>> most likely break, unless they all follow the same kind of routes and have >>> the same kind of code, in which case you might want to consider making sam >>> an app. >>> >>> >>> >>> On Friday, July 25, 2014 1:03:51 AM UTC+8, Michael Gheith wrote: >>>> >>>> That's a great idea lyn2py, but I expect to run multiple applications >>>> in one web2py instance. I can't have all my applications with the name of >>>> sam unfortunately. >>>> >>>> I just discovered that I can add a URL prefix of "fff" with the >>>> following code: >>>> >>>> routes_in = ( >>>> >>>> ('/fff/$a/$c/$f', '/$a/$c/$f') >>>> >>>> ) >>>> >>>> >>>> routes_out = ( >>>> >>>> ('/$a/$c/$f', '/fff/$a/$c/$f') >>>> >>>> ) >>>> >>>> >>>> Is it possible to change fff to be variable based on the URL? If so, >>>> how? If we can figure that out then I think my issue will be solved. >>>> Please help! >>>> >>>> >>>> On Thursday, July 24, 2014 11:37:01 AM UTC-5, lyn2py wrote: >>>>> >>>>> In that case, >>>>> >>>>> Make sam your app's name, client1 and 2 can be the functions within >>>>> the controller, or separate controllers for each client. >>>>> >>>>> If they share functions, you could shift your function's logic outside >>>>> (into a module). >>>>> >>>>> >>>>> >>>>> On Thursday, July 24, 2014 11:50:28 PM UTC+8, Michael Gheith wrote: >>>>>> >>>>>> Hello lyn2py, >>>>>> >>>>>> Thank you for your response. Unfortunately it is necessary for me to >>>>>> have the URL prefix of /sam/<client>. I would imagine your strategy >>>>>> would >>>>>> work if it was possible to dynamically add a URL prefix, but I don't >>>>>> think >>>>>> there is a way to do that. Anyone else have any ideas? Massimo? >>>>>> >>>>>> Best, >>>>>> Michael Joseph Gheith >>>>>> >>>>>> On Wednesday, July 23, 2014 9:22:30 PM UTC-5, lyn2py wrote: >>>>>>> >>>>>>> You are pointing client1 and client2 to the same representation of >>>>>>> the routes. It won't work properly. >>>>>>> >>>>>>> If you have separate domains for separate clients, see >>>>>>> scripts/autoroutes.py >>>>>>> >>>>>>> If you want to serve customized to different clients, you might want >>>>>>> to do >>>>>>> >>>>>>> http://127.0.0.1:8000/sam/<appname>/default/index/client1 >>>>>>> http://127.0.0.1:8000/sam/<appname>/default/index/client2 >>>>>>> >>>>>>> EDIT: No wait… what is sam doing in there… it should be: >>>>>>> >>>>>>> http://127.0.0.1:8000/ <http://127.0.0.1:8000/sam/> >>>>>>> <appname>/default/index/client1 >>>>>>> http://127.0.0.1:8000/ <http://127.0.0.1:8000/sam/> >>>>>>> <appname>/default/index/client2 >>>>>>> >>>>>>> and have index pull request.args(0) to match to correct client >>>>>>> >>>>>>> On Thursday, July 24, 2014 12:41:29 AM UTC+8, Michael Gheith wrote: >>>>>>>> >>>>>>>> What I'm trying to do is to have my application serve 2 different >>>>>>>> customers via URLs like the following: >>>>>>>> >>>>>>>> http://127.0.0.1:8000/sam/client1/<appname>/default/index >>>>>>>> http://127.0.0.1:8000/sam/client2/<appname>/default/index >>>>>>>> >>>>>>>> >>>>>>>> My routes.py looks like: >>>>>>>> >>>>>>>> routes_in = ( >>>>>>>> >>>>>>>> ('/sam/client1/$a/$c/$f', '/$a/$c/$f'), ( >>>>>>>> '/sam/client2/$a/$c/$f', '/$a/$c/$f') >>>>>>>> >>>>>>>> ) >>>>>>>> >>>>>>>> >>>>>>>> routes_out = ( >>>>>>>> >>>>>>>> ('/$a/$c/$f', '/sam/client1/$a/$c/$f'), ('/$a/$c/$f', >>>>>>>> '/sam/client2/$a/$c/$f') >>>>>>>> >>>>>>>> ) >>>>>>>> >>>>>>>> >>>>>>>> This works great for client1. The minute I use client2 the links >>>>>>>> use client1 mappings in the URL. I'm using the URL function for all >>>>>>>> my >>>>>>>> links. Any ideas what I'm doing wrong? Perhaps this is an issue with >>>>>>>> web2py? Please advise. >>>>>>>> >>>>>>>> >>>>>>>> Thanks in advance! >>>>>>>> M.G. >>>>>>>> >>>>>>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.