+ と %20 で書いた空白は同じ値
検索語の空白を + で書いたアドレスと %20 で書いたアドレスが、同じ値として読まれて 1 つになる境界の例です。クエリの読み書きの規則を確かめられます。
入力
アドレスの一覧(1 行に 1 つ)
https://example.com/s?q=a+b https://example.com/s?q=a%20b
クエリ(? 以降)をパラメータ名の順に並べ替える
はい
パスの末尾のスラッシュ
そのまま(違いを警告する)
# 以降(フラグメント)
残す
結果
エラー 0 件・警告 1 件・情報 0 件
指摘(エラー・警告・情報)
- 警告 1 行目 2 件が同じアドレス https://example.com/s?q=a+b に正規化されます(1 行目・2 行目)。書き方の違いだけで同じ場所を指しているので、1 つに統一してください(RFC 3986 6.2)。
| アドレスの数 | 2 件 |
|---|---|
| 正規化後の種類 | 1 種類(同じになって減る数: 1 件) |
| 正規化できなかった行 | 0 件 |
| クエリだけ違うグループ | 0 組 |
| 大文字小文字だけ違うグループ | 0 組 |
正規化したアドレスの一覧
| 行 | 元のアドレス | 正規化後のアドレス |
|---|---|---|
| 1 | https://example.com/s?q=a+b | https://example.com/s?q=a+b |
| 2 | https://example.com/s?q=a%20b | https://example.com/s?q=a+b |
検算(この結果になる理由)
WHATWG URL 5.1 では + を空白に直してから %エンコードを戻すため、どちらも値は「a b」です。5.2 の書き出しで空白は + になるので、2 行とも ?q=a+b に揃い、同じアドレスになる警告が 1 件です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- アドレスへアクセスして内容を確かめることはしません。表記が違うアドレスが実際に同じページかどうかは、サイト側の設定を確認してください。
- RFC 3986 の正規化にもとづくもので、ブラウザの URL の解析(WHATWG URL の全規則)とは細部が異なります。国際化ドメイン名の変換や IPv6 の表記ゆれの統一は行いません。
- 同じ名前のパラメータの順序は保ちますが、同じ名前を 1 つにまとめることや、特定のパラメータ(utm_ など)を取り除くことはしません。
- 絶対のアドレス(スキームとホストがあるもの)だけを扱います。相対のアドレスは、別の「相対アドレスを絶対に変換する」ツールで解決してください。
ご利用にあたって
- 正規化後のアドレスは書き方の整理であり、実際のリダイレクトや canonical の設定は別に確認してください。
- 大量のアドレスを貼り付けると、お使いの端末の性能によって処理に時間がかかることがあります。