Google app engine 如何在web2py和googleappengine中缩短url

Google app engine 如何在web2py和googleappengine中缩短url,google-app-engine,url,routes,web2py,domain-name,Google App Engine,Url,Routes,Web2py,Domain Name,我一直在努力缩短URL。例如,改变 www.mydomainname.com/myapp/default/mypage 至www.mydomainname.com/mypage 我在web2py文件夹下的routes.py中添加了以下代码: routes_out=( ('.*:/sevenpeng/default(?P<any>.*)', '\g<any>'),) routes\u out=( ('.*:/sevenpeng/default(?P.*'),\g

我一直在努力缩短URL。例如,改变

www.mydomainname.com/myapp/default/mypage
www.mydomainname.com/mypage

我在web2py文件夹下的routes.py中添加了以下代码:

routes_out=(
    ('.*:/sevenpeng/default(?P<any>.*)', '\g<any>'),)
routes\u out=(
('.*:/sevenpeng/default(?P.*'),\g'),)
但这不起作用。url仍然显示
www.mydomain.com/default/mypage
我错过什么了吗

另一个问题是,我在谷歌appengine上部署了我的网站,当我键入www.mydomainname.com时,它指向正确的页面,地址仍然是www.mydomainname.com。但是,当我直接在浏览器中键入mydomainname.com时,地址变为1.myapp.appspot.com/myapp。我怎样才能解决这个问题


谢谢

从URL中删除应用程序名称和“默认”控制器的最简单方法是使用,如下所示:

routers = dict(
    BASE = dict(
        default_application = 'myapp',
        default_controller = 'default',
        default_function = 'index',
    ),
)

上面的代码位于/web2py/routes.py中。注意,基于参数的系统不能与混合。

谢谢。但是我有几个控制器,我不想显示控制器的名称。可能类似于
routes_-in=('/('Pfunc1 | func2 | etc'),/myapp/controller1/\g'),('/('Pfunc3 | func4 | etc'),/myapp/controller2/\g')
routes_-out将通过
URL()生成缩短的URL,但是,当有人跟踪routes\u out生成的链接时,您需要相应的routes\u in来正确地将传入请求转换为正确的web2py路由。