web-dev-qa-db-ja.com

アンプ;サイトマップリンクでは、正しいですか?

簡単な質問です。念のためにお願いします。

Googleサイトマップジェネレーターは、次のようなリンクを含むsitemap.txtファイルを生成しました。

http://www.domain.com/category.htm?name=some-name&cat_id=8

これらのリンクで&の代わりに&を使用するのは正しいですか、それともサイトマップジェネレーターによって行われたエラーですか?

ありがとう。

17
Marco Demaio

それは正しいです。これはアンパサンド(&)のHTMLエンティティであり、適切にエンコードされたURLでの適切な文字表現です。アンパサンド(&)および<および>はXMLおよびHTMLの特殊文字であり、特殊文字エンティティを使用して表示する必要があります。

11
John Conde

サイトマップファイルはUTF-8でエンコードされている必要があります(通常、ファイルを保存するときにこれを行うことができます)。すべてのXMLファイルと同様に、データ値(URLを含む)は、文字にエンティティエスケープコードを使用する必要があります。

これは役に立つかもしれません http://sitemaps.org/protocol.php

6
Jeremy

Googleは、URLに文字が含まれている場合、サイトマップが壊れているとして拒否します。 ampと交換するときに受け入れます。

ただし、後でGoogleウェブマスターツールでクロールエラーのリストを確認すると、ampが含まれているため、サイトマップファイルのこのURLが破損していると報告されます。の代わりに 。

したがって、正しい解決策は、URLが含まれないようにURLを変更することです。または、これをバグとしてGoogleに報告してください。

2
Klaus Hartnegg

また、チェックすることで自分を納得させることができます

公式のxmlサイトマッププロトコルページに反論することはできません:)

2
Tom

URLエンコーディングとXMLエンティティエンコーディングは同じものではありません。クエリパラメータの分離にのみ使用できるようなURLの特殊文字を置き換えるには、URLエンコードが必要です。 XMLエンティティエンコーディングは、XML(またはXHTML)の特殊文字をエンコードするためのものです。これは、XML(またはXHTML)ファイルにURLがあり、このURLにいくつかの文字が含まれている場合、それをamp;にエンティティエンコードする必要があることを意味します。したがって、sitemap.xmlには、Marco Demaioからの質問のようなURLがあります。

1
bdadam