Django 通用站点地图和附加斜杠

发布于 2024-11-11 21:58:47 字数 240 浏览 3 评论 0原文

Google 抱怨我的站点地图中的网址出现 301 重定向。

我正在使用 GenericSitemap,并且我的 APPEND_SLASH 设置是默认的(打开)。因此,我的 URL 会重定向,以斜杠结尾,这就是我喜欢的方式。然而,默认的 django 站点地图 (django.contrib.sitemaps) 不会在它生成的 url 上放置这些尾部斜杠。

我想我已经正确遵循了所有文档,但在谷歌上找不到任何答案 - 有什么想法吗?

Google is complaining of a 301 redirect for URLs in my sitemap.

I'm using GenericSitemap, and my APPEND_SLASH setting is defaulted (on). My URLs therefore redirect so they end with a slash, which is how I like it. However the default django sitemap (django.contrib.sitemaps) doesn't put these trailing slashes on the urls it generates.

I think I've followed all the docs correctly and can't find any answers on google - any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

彩虹直至黑白 2024-11-18 21:58:47

根据 django.contrib 的源代码.sitemapsget_absolute_url 用于构建站点地图,所以最好的事情可能是开始逐个模型转换您的网址。但是,如果它给您带来太多问题,您可以同时对 GenericSiteMap 进行子类化,以向所有 url 添加斜杠,而无需尾部斜杠:

class SlashedGenericSitemap(GenericSitemap):
    def location(self, obj):
        url = obj.get_absolute_url()
        return url if len(url)>0 and url[-1]=='/' else url + '/'

当然,使用它而不是 GenericSiteMap。

According to the source code of django.contrib.sitemaps, get_absolute_url is used for building the sitemap, so the best thing would probably be starting to convert your urls model by model. However, if it causes you too much problems, you can meanwhile subclass GenericSiteMap to add slashes to all urls without a trailing slash:

class SlashedGenericSitemap(GenericSitemap):
    def location(self, obj):
        url = obj.get_absolute_url()
        return url if len(url)>0 and url[-1]=='/' else url + '/'

And of course, use it instead of GenericSiteMap.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文