Возникновение ошибки 404 с помощью django-hosts в Django

У меня следующая проблема. Я использую django-hosts для таких поддоменов, как blog.example.com, es.example.com.

Проблема в том, что есть урлы, где я управляю id, например: blog.example.com/url/id

Допустим, пользователь ничего не трогает, потому что все - OK 200, но если пользователь переходит от умного и трогает id к несуществующему, сайт возвращает 404.

Но тут возникает проблема, при использовании django-hosts если я делаю handler404 в урлах поддомена. Он выдает ошибку 500, и если я затем делаю handler500 в урлах поддомена, буквально, это ломает сервер, поскольку тогда apache говорит мне, что есть проблема в сервере.

Здесь я оставляю свой url.py поддомена.

from django.urls import path
from django.views.generic.base import TemplateView
from django.conf.urls import handler404, handler500
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.sitemaps.views import sitemap

# MODULO PROPIO
from . import views
from .sitemaps import MapaDeSitio

sitemaps = {
    'blog': MapaDeSitio
}

urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [
    # SITIO
    path('', views.indexView, name='IndexView'),
    path('articulo/<str:url>/<int:id>', views.ArticuloView, name="ArticuloView"),
    

    # SEO
    path('robots.txt', views.RobotsView.as_view()),
    path('BingSiteAuth.xml', TemplateView.as_view(template_name="blog/BingSiteAuth.xml", content_type="text/xml")),
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
]


# MANEJO DE ERRORES HTTP
handler404 = views.Error404 # Error 404
handler500 = views.Error500 # Error 500

Здесь я оставляю код hosts.py из django-hosts:

from django.conf import settings

from django_hosts import patterns, host


host_patterns = patterns(
    '',
    host(r'www', settings.ROOT_URLCONF, name="www"),
    host(r'blog', 'blog.urls', name="blog"),

)

Если кто-то может помочь мне, я буду благодарен вам.

Теперь я попытался удалить коды, чтобы посмотреть, исправит ли это ошибку 500 в apache2: 'handler404 = views. Error404 # Ошибка 404 handler500 = views. Error500#Ошибка 500'

И если вы их решаете. В половине случаев вы размещаете какой-то обработчикХ выбрасывает ошибку. Но всегда в url файле поддомена.

Вернуться на верх