5

スペースを含む URL を照合する場合、スペースは%20またはとしてエンコードされる場合があります+。これを Nginx 正規表現で照合するには、どのパターンを使用する必要がありますか?

Nginx は URL をそのまま渡しますか?

(?:%20|\+| )

または、Nginxは最初に引用符の解除またはエスケープ解除を行いますか?

(?:\+| )

または+正規化されていますか?

4

1 に答える 1

1

私のテストでは、Nginx のドキュメントに参照が見つかりませんでしたが、私のテストでは、Nginx は HTTP コードを Unicode として正規化し、「%20」が「\s」と一致します。「+」はすでに Unicode であり、正規化する必要はありません。

例えば。/route/the%20test

と一致する必要があります(?:\s)

ただし、私はより安全な側に傾いて、次のようなものを使用する傾向があります。(?:(\s|\%20))

于 2013-01-02T22:12:17.833 に答える