Django Generic Sitemap и добавление косых черт - PullRequest
0 голосов
/ 02 июня 2011

Google жалуется на редирект 301 для URL-адресов в моей карте сайта.

Я использую GenericSitemap, и мой параметр APPEND_SLASH установлен по умолчанию (включен).Поэтому мои URL-адреса перенаправляются, поэтому они заканчиваются косой чертой, как мне и нравится.Однако карта сайта django по умолчанию (django.contrib.sitemaps) не помещает эти косые черты в создаваемые URL-адреса.

Я думаю, что я правильно выполнил все документы и не могу найти ответы в Google- есть идеи?

1 Ответ

2 голосов
/ 13 июня 2011

Согласно исходному коду django.contrib.sitemaps , get_absolute_url используется для построения карты сайта, поэтому лучше всего начать преобразование вашей модели 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.

...