将旧的php网址重定向到新的烧录网址

时间:2012-06-15 14:05:32

标签: php python redirect flask

我有一个用php编写的网站,其中包含example.com/index.php?q=xyz等网址。 现在我在flask(python)中重写了它,其中包含example.com/search?q=xyz等网址。 最好的方法是什么?

我想到的一种方法是在php中编写一个index.php和代码来重定向。但是仅使用应用(烧瓶)可以达到相同的效果吗?

更新:发送参数不完全相同,也有一些自定义。

3 个答案:

答案 0 :(得分:1)

如果使用apache,将重写规则放入httpd.conf文件的目录部分或.htaccess文件可能是最简单的方法。

答案 1 :(得分:1)

是的,可以在Flask中完成。

我先向您展示代码,然后再解释。

代码

    @app.route('/index.php')
    def index():
        url = url_for('search',q=request.args['q'])
        return redirect(url)

    @app.route('/search')
    def search():
        # Access q as request.args['q'] same as we have done above

说明

每当Flask收到一些附加到有效网址的参数时,在这种情况下q附加到'index.php'url,用?作为加入元素。它将这些参数保存在一个名为args的MultiDict(Read about it here)中,它可以作为Flask的全局请求变量的属性。

您可以将其作为

进行访问
    request.args['parameter_name']

请记住,参数值已转换为字符串,任何整数值都应通过int()传递。

此代码只捕获index.php url及其参数,然后重定向到您的新搜索网址,其参数按原样传递。您还可以处理参数并传递给搜索网址。这样两个网址最终都能完成您想要的工作。

希望有所帮助! :)

答案 2 :(得分:0)

Flask不关心规则中的名称是什么,因为它们不指向文件。你可以写:

@app.route('/index.php')
def index_view():
    pass