【问题标题】:how to make url shorter in web2py and google appengine如何在 web2py 和 google appengine 中缩短 url
【发布时间】:2012-01-30 02:41:21
【问题描述】:

我一直在尝试缩短 URL。例如,改变

www.mydomainname.com/myapp/default/mypage

www.mydomainname.com/mypage

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

routes_out=(
    ('.*:/sevenpeng/default(?P<any>.*)', '\g<any>'),)

但这没有用。网址仍然显示www.mydomain.com/default/mypage 我错过了什么吗?

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

谢谢

【问题讨论】:

    标签: google-app-engine url routes web2py domain-name


    【解决方案1】:

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

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

    以上内容位于 /web2py/routes.py 中。注意,基于参数的系统不能与pattern-based system混用。

    【讨论】:

    • 谢谢。但是我有几个控制器,我不想显示控制器的名称。
    • 可能类似于routes_in = (('/(?P&lt;any&gt;func1|func2|etc)', '/myapp/controller1/\g&lt;any&gt;'), ('/(?P&lt;any&gt;func3|func4|etc)', '/myapp/controller2/\g&lt;any&gt;'))
    • routes_out 将通过 URL() 函数生成缩短的 URL,但是当有人点击 routes_out 生成的链接时,您需要相应的 routes_in 才能正确地将传入请求转换为正确的 web2py 路由。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    相关资源
    最近更新 更多