2013-03-01 81 views
2

我有一個生產django項目,目前只包括一個應用程序。假設我的域名是myproject.com,我的應用叫做myapp。我想索引是myproject.com/而不是myproject.com/myapp/項目URL的應用程序URL

這是我myproject/urls.py看起來像:

urlpatterns = patterns('', 
url(r'^myapp/', include('myapp.urls')), 
... 

而且myapp.urls.py

urlpatterns = patterns('myapp.views', 
url(r'^$', 'about'), 
... 

我怎樣才能讓下myproject.com可用的應用程序?或者是你應該通過重新指導來做的事情,例如在你的.htaccess中?

回答

5

你必須重新定義urls.py這個

urlpatterns = patterns('', 
    url(r'^$', include('myapp.urls')), 
... 

這將捕獲到 '/' 的所有呼叫。

這將使所有你的網址從「根」。 那麼當然你必須編寫你的myapp.urls,這樣當 放入網頁瀏覽器時它們纔有意義。

UPDATE

所以後一個大醇」聊天:這是我想你想的純codewise

在你的根urls.py

url(r'', include('myapp.urls')), 
在myapp.urls

的東西

urlpatterns = patterns('myapp.views', 
    url(r'^$', 'first_view'), 
    url(r'^evilCellphones/$', 'another_view'), 
) 

這裏發生的實質是你的myapp.urls到 命名空間,但由於Django仍然加載它,它會包含你新定義的url。 從那裏你可以重新定義你的所有網址,讓他們服從相同的名字 空間作爲「myproject」。

This part of the docs are explains it really well

+0

我得到的啓示......所以,你認爲它能夠更好地使用重新定向,例如在你的.htaccess中? – LarsVegas 2013-03-01 09:18:24

+0

這一切都取決於你計劃如何繼續進行你的項目。如果您打算添加多個應用程序,那麼也許,否則這沒問題。 – 2013-03-01 09:22:11

+0

在我的myapp.urls.py中,所有不是索引的應該匹配喜歡? '^ $/contact' – LarsVegas 2013-03-01 10:50:44