2011-06-16 87 views
1

基本上就是我想要做的是:Django的重定向legazy PHP網址

urlpatterns = patterns('', 
    url(r'^old/site/url.php?someshit=(?P<id>\d+)', 
    'website.views.redirect_php'), 
) 

但我總是得到一個404 ..

我也試圖逃跑像這樣

urlpatterns = patterns('', 
    url(r'^old/site/url\.php\?someshit\=(?P<id>\d+)', 
    'website.views.redirect_php'), 
) 

沒有運氣。

任何想法?

回答

4

你在做什麼不起作用,因爲GET參數不會在字符串中包含的URL配置相匹配。 (請參閱What the URLconf searches against。)

要實現所需的行爲,您需要從視圖中提取GET參數並根據重定向。

urlpatterns = patterns('', 
    url(r'^old/site/url\.php$', 
     view='website.views.redirect_php', 
     name='redirect_php' 
    ), 
) 

,並在您的視圖:

def redirect_php(request): 
    id = request.GET.get("somesheet", None) 
    if id == None: 
     # handle case where "somesheet=?" was not provided 
    else: 
     # handle redirects based on id 
+0

Duh ..對。謝謝 ! – 2011-06-16 17:00:23

0

試試這個:

urlpatterns = patterns('', 
    url(r'^old/site/url\.php?someshit=(?P<id>\d+)$', 
    'website.views.redirect_php', name='redirect_php'), 
) 
+0

即使我更換(θP \ d +)與實際的ID,並在地址欄手動輸入ID不工作..。它啓動它不匹配任何URL .. – 2011-06-16 15:37:21

+0

嗯。讓我看看我能否爲你找到解決方案。 – Brandon 2011-06-16 15:38:41

+0

發現問題..請參閱下面的答案。謝謝;) – 2011-06-16 17:08:24