1

この質問の露骨な無知をお詫びしますが、私は経験のない 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 が 2 つのほぼ同一のページをインデックスに登録していることと、クライアントの過払いオンライン戦略パートナーによると、SEO が悪いことです。

漠然としていることは承知していますが、誰かが助けてくれれば、大いに喜ぶでしょう。

読んでくれてありがとう!

4

1 に答える 1

3

あなたのコンサルタントは正しいと思います。1 つの URL = 1 つのリソース。いずれにせよ、1 つのリソースに 2 つの URL を持つことは非常に汚いことです。これが、Django が、末尾にスラッシュがない URL から末尾にスラッシュがある URL への自動リダイレクト機能を備えている理由です。特定の条件下で。

/services/ の URL 定義の正規表現には、末尾のスラッシュがないと確信しています。とにかく、末尾のスラッシュのみを使用する必要があります:

  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='/')、URL の末尾にスラッシュがない MetaInfo を返す必要があります。

于 2012-03-02T11:21:17.710 に答える