web-dev-qa-db-ja.com

PHPのPATH_INFOとは正確には何ですか?

すべての外部URLは「module/action?key1 = param1」のようになります。カスタマイズはできませんが、高速です。違いは、1つ目はPHPのGETを使用し、2つ目はPATH_INFOを使用することです。

私は見た PATH_INFO何回か繰り返しますが、正確には何なのかわかりません。それは何をするためのものか?

33
user198729

実際、PATH_INFOは、Apache Webサーバーに関連するPHPページであり、PHPそれ自体ではありません。

PATH_INFOAcceptPathInfoディレクティブ がオンになっているときにApacheによって設定される環境変数です。要求が受け入れられるか拒否されるかに関係なく、既存のディレクトリに実際のファイル名または存在しないファイルに続く後続のパス名情報が含まれます。次に、環境変数は、ページのレンダリングを担当するApache/CGIモジュールに渡されます。

変数は、PHPを使用して$_SERVER['PATH_INFO']を使用してアクセスできます。

たとえば、場所/test/が単一のファイルhere.htmlのみを含むディレクトリを指しているとします。次に、/test/here.html/more/test/nothere.html/moreの両方のリクエストで、/morePATH_INFOとして収集されます。

Apache Core Documentation:AcceptPathInfoディレクティブ

43
Andrew Moore

変数PATH_INFOはCGIの定義の一部なので、そこも確認する必要があります;)

https://tools.ietf.org/html/rfc3875#section-4.1.5

19
SimonSimCity