Django - косая черта сбрасывает заголовок страницы - PullRequest
1 голос
/ 02 марта 2012

Я прошу прощения за вопиющее незнание этого вопроса, но мне было поручено исправить кое-что в Django, с которым у меня НЕТ опыта!

У нас проблема с URL-адресами и дублированным контентом.

Если мы зайдем на сайт «www.hello.com/services/», тогда мы получим полную страницу, абсолютно нормально.

Если мы зайдем на «www.hello.com/services», то получим тот же контент, но с настройками по умолчанию, которые, кажется, установлены в строке:

class PageTitleNode(template.Node):?
 ?
    def render(self, context):?
        try:?
            meta_info = MetaInfo.objects.get(url=context['request'].path)?
        except ObjectDoesNotExist:?
            return u'This is our default page title'?
        return u"%s - hello.com" % meta_info.title

Основная проблема заключается в том, что Google индексирует две почти идентичные страницы, и это плохо для SEO в соответствии с переплатой партнера по онлайн-стратегии нашего клиента .

Я знаю, что это расплывчато, но если кто-то может помочь, тогда будет много радости.

Спасибо за чтение!

1 Ответ

3 голосов
/ 02 марта 2012

Я думаю, что ваш консультант прав.Один URL = один ресурс.В любом случае наличие двух URL на одном ресурсе довольно грязно.Вот почему Django имеет функцию автоматического перенаправления с непоследнего слеша на URL с конечным слешем.При определенных условиях .

Я почти уверен, в вашем регулярном выражении определения URL для / services / отсутствует косая черта .В любом случае, вы должны использовать только конечные слэши :

  1. Убедитесь, что APPEND_SLASH установлено в True : from django.conf import settings; print settings.APPEND_SLASH

  2. Убедитесь, что все ваши регулярные выражения URL имеют косую черту , например, url(r'foo' ...) - это плохо и url(r'foo/' ...) проходит только из-за возможных конфликтов и url(r'foo/$' ...) лучше

  3. Убедитесь, что все объекты MetaInfo имеют URL с косой чертой , напримерMetaInfo.objects.exclude(url__endswith='/') должен возвращать MetaInfo без косой черты в URL

...