すべての外部URLは「module/action?key1=param1」のようになります。カスタマイズはできませんが、高速です。違いは、最初はPHPのGETを使用し、2番目はPATH_INFOを使用することです。
私はPATH_INFO
何度か見たことがありますが、それが正確に何であるかはまだわかりません。それは何をするためのものか?
実際にPATH_INFO
は、PHP自体ではなく、PHPページを提供するApacheWebサーバーに関連しています。
PATH_INFO
AcceptPathInfo
ディレクティブがオンになったときにApacheによって設定される環境変数です。要求が受け入れられるか拒否されるかにかかわらず、既存のディレクトリ内の実際のファイル名または存在しないファイルに続く末尾のパス名情報が含まれます。次に、環境変数は、ページのレンダリングを担当するApache/CGIモジュールに渡されます。
変数は、PHPで。を使用してアクセスできます$_SERVER['PATH_INFO']
。
たとえば、場所/test/
が単一のファイルのみを含むディレクトリを指していると仮定しますhere.html
。次に、リクエスト/test/here.html/more
と/test/nothere.html/more
両方がとして収集/more
されPATH_INFO
ます。
変数PATH_INFOはCGIの定義の一部であるため、そこも確認する必要があります;)
PATH_INFO変数は、CGIスクリプトによって解釈されるパスを指定します。これは、CGIスクリプトによって返されるリソースまたはサブリソースを識別し、スクリプト自体を識別する部分に続くURIパス階層の部分から派生します。URIパスとは異なり、PATH_INFOはURLエンコードされておらず、パスセグメントパラメータを含めることはできません。「/」のPATH_INFOは、単一のvoidパスセグメントを表します。
PATH_INFO = "" | ( "/" path ) path = lsegment *( "/" lsegment ) lsegment = *lchar lchar = <any TEXT or CTL except "/">