2015-09-04 96 views
0

我有老的WordPress網站。它的網址,如:捕捉網址GET參數

/?wpsc-product=abc

我已經建立在Django一個新的網站,具有像URL:

/products/abc/

我如何能趕上舊網址,並將其重定向到新的?其實,我不知道我怎麼能趕上網址參數。

我希望能寫的每一個重定向,而不是使正則表達式,因爲我沒有把所有的蛞蝓,他們中的一些改變。

回答

2

您不能在您的urls.py中捕獲像?wpsc-product=abc這樣的GET參數,但可以編寫一個視圖來檢查GET參數並重定向到新視圖。

下面是一個簡化urls.py與兩個視圖。索引視圖重定向請求與參數和重定向他們(如/?wpsc-product=abc),並且還處理請求,不帶任何參數(即/,並返回所呈現的指標模板。

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^products/(?P<slug>[-\w]+)/$', views.view_product, name='view_product'), 
] 

from django.shortcuts import redirect, render 

def index(request): 
    # check for wpsc-product in GET params 
    if 'wpsc-product' in request.GET: 
     return redirect('view_product', slug=request.GET['wpsc-product']) 
    else: 
     # return the regular index template 
     return render(request, 'index.html', {}) 
+0

這部分答案,因爲URL重定向到同塞。如果塞在新的網站已經改變了它不會工作。好主意,無論如何。 – bmiljevic

+1

您可以訪問在視圖中塞,它很容易,如果有必要去改變它。 – Alasdair