Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
スペースを含む URL を照合する場合、スペースは%20またはとしてエンコードされる場合があります+。これを Nginx 正規表現で照合するには、どのパターンを使用する必要がありますか?
%20
+
Nginx は URL をそのまま渡しますか?
(?:%20|\+| )
または、Nginxは最初に引用符の解除またはエスケープ解除を行いますか?
(?:\+| )
または+正規化されていますか?
私のテストでは、Nginx のドキュメントに参照が見つかりませんでしたが、私のテストでは、Nginx は HTTP コードを Unicode として正規化し、「%20」が「\s」と一致します。「+」はすでに Unicode であり、正規化する必要はありません。
例えば。/route/the%20test
/route/the%20test
と一致する必要があります(?:\s)
(?:\s)
ただし、私はより安全な側に傾いて、次のようなものを使用する傾向があります。(?:(\s|\%20))
(?:(\s|\%20))