如何在https中使用站点地图?

时间:2018-12-20 14:33:00

标签: django https

我决定在Django 1.11.4中启用https。

谢谢“让我们加密”。

因此,我将所有http请求重定向(301)到https。 另外,所有非www(http或https)都将重定向(301)到https://www

我的URL https://www.example.com/sitemap.xml正常工作,因为自https传递以来,该URL当前不起作用。

它返回500错误代码,我真的不知道为什么。

urls.py

from django.conf.urls import url
from django.contrib.sitemaps.views import sitemap
from example.sitemaps import *
from django.conf import settings



#Pour charger le favicon
media = settings.MEDIA

# Dictionary containing sitemap classes
sitemaps = {
    'products': ArticleSitemap(),

}

urlpatterns = [
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
]

sitemaps.py

#Generating Sitemap for Dynamic Urls

from django.contrib.sitemaps import Sitemap
from wall.models import Articles

class ArticleSitemap(Sitemap):
    changefreq = "weekly"
    priority = 0.7

    def items(self):
        return Articles.objects.filter(published=True).order_by('-update')

    def lastmod(self, item): 
        return item.date

settings.py

INSTALLED_APPS = [
    'django.contrib.sites', #SiteMap
    'django.contrib.sitemaps', #SiteMap

它是通过http工作的,因此需要做一些修改,但是我不知道是哪个。

1 个答案:

答案 0 :(得分:0)

我发现了问题。我将Django传递到调试模式,它返回了:

  

网站匹配查询不存在

我得出结论,我settings.py中存在的默认SITE_ID = 1是错误的。 转到Django / admin / sites /的管理面板并编辑该站点。 好的ID由浏览器上的URL给出。

只需将SITE_ID = 1修改为SITE_ID = 2(以我为例)就可以了!