Ваши URL должны выглядеть следующим образом:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', 'blog.views.index'),
)
Обратите внимание, что индексный URL, который вы хотите использовать, теперь заключен в вызов url()
.Кроме того, URL-адрес индекса теперь следует за URL-адресом администратора, поэтому URL-адреса, ссылающиеся на /admin
, обрабатываются URL-адресом администратора, а не перехватывает все заданные вами URL-адреса index
.
Обработчики URL-адресов работают при первом совпадении.Ваш url(r'^')
соответствует ВСЕМУ, поэтому не дает возможности работать админке.Вам, вероятно, следует изменить его на url(r'^$')
, который будет соответствовать URL-адресу «без пути», а не «каждому URL».Обратите внимание на добавление знака $, отмечающего конец шаблона.
Редактировать:
Хорошо, теперь я понимаю вашу проблему лучше.То, что вы пытаетесь сделать, - это развернуть приложение django по определенному пути к серверу, для которого требуется префикс в пути URL.
Обычно это стандартный URL:
http://www.example.com/
http://www.example.com/admin/
http://www.example.com/index/
Вместо этого вы пытаетесь сделать следующее:
http://www.example.com/myapp/
http://www.example.com/myapp/admin/
http://www.example.com/myapp/index/
Django обычно ожидает, что ваше приложение будет развернуто по корневому URL, без указания пути.Путь используется для определения того, какое внутреннее приложение django должно обработать запрос.
Существует два способа решения вашей проблемы.Во-первых, и то, что я бы посчитал правильным, это использовать каркас сайтов, как описано здесь .
Другой, это добавить префикс ко всем вашим URL в urlpatterns.вот так:
urlpatterns = patterns('',
url(r'^blog/admin/', include(admin.site.urls)),
url(r'^blog/$', 'blog.views.index'),
)
Но вам также нужно помнить, чтобы добавить префикс 'blog' к нескольким настройкам, которые ожидают URL-адреса, такие как LOGIN_REDIRECT и т. д. и т. д.
Что вы действительно должны делать,заставить django работать по адресу: mako34.alwaysdata.net и забыть / blog / в целом, но изменить apache, чтобы перенаправить все запросы к mod_wsgi.