Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 如何在tornado中重写url_Nginx_Tornado - Fatal编程技术网

Nginx 如何在tornado中重写url

Nginx 如何在tornado中重写url,nginx,tornado,Nginx,Tornado,这些天我在学习tornado和nginx,我对url重写感到困惑 例如:如果我想制作这样的url www.abc.com/username/projectname(哪个用户名和projectname取决于用户) 我有两个解决方案,第一个是使用正则表达式,比如 (r'/(w+/(w+)),索引句柄) 并尝试从url中获取用户名和项目名称,并在数据库中进行搜索 第二个解决方案是像这样使用nginx重写 www.abc.com/username/projectname=>abc.domian.com/

这些天我在学习tornado和nginx,我对url重写感到困惑

例如:如果我想制作这样的url

www.abc.com/username/projectname(哪个用户名和projectname取决于用户)

我有两个解决方案,第一个是使用正则表达式,比如

(r'/(w+/(w+)),索引句柄)

并尝试从url中获取用户名项目名称,并在数据库中进行搜索

第二个解决方案是像这样使用nginx重写

www.abc.com/username/projectname=>abc.domian.com/?us=username&pj=projectname


哪种解决方案是正确的?非常感谢。

两者都是正确的。在这种情况下,我个人会使用第一种形式,这样无论是否存在nginx,Tornado服务器都可以工作(更方便开发和测试),但有时在nginx级别进行重写更简单。

,因此,我可以使用get_参数从用户的输入url获取参数,然后在数据库中进行搜索?您可以使用第二种形式的get_参数()。在第一种形式中,从路径中提取的值作为参数传递给处理程序的get()方法。您介意给我一个例子吗?我使用了get(self,input):self.write(input)并希望获取“username/projectname”,但失败了。这是没有“/”的工作。或者我应该使用self.request.uri之类的东西?如果路由中有两组括号,get方法中会有两个参数:get(self、user、project)