2016-07-27 94 views
0

我得到了很多搜索引擎推荐链接,用于我以前的PHP开发网站,现在已经迁移到Django。我做了一个URL重定向旧的PHP链接像search.php?name=john+smith为我的Django搜索URL相同的看法如下所示:将旧的PHP链接重定向到Django的网址

urls.py

url(r'^search.php/$', profile_search, name='search'), 
url(r'^search/$', profile_search, name='search'), 

将谷歌最终更新这些老环节,如果我通过重定向urls.py还是我需要做一个301重定向?如果是的话,我会如何与django和nginx做到这一点?

回答

3

我会做到这一点,在nginx的水平 - 这比Django的处理很有效。假设Django的观点预计,相同的查询参数,你可以在你的nginx server块做到这一点:

location = /search.php { 
    return 301 http://$server_name/search/$is_args$args; 
} 

这将重定向search.php所有请求/search/,保留任何查询参数。

301响应绝对是正确的方法 - 您不希望在不同的URL上提供重复的内容。

1

除非在您的profile_search方法中有HttpResponseRedirect,否则您实际上没有任何类型的重定向。但是,你真的想用什么HttpResponsePermanentRedirect

def profile_search(request): 
    return HttpResponsePermanentRedirect('/somether/url/?based_on_request_params') 
相关问题