PHPから、実行しているサーバーでPATH_INFOが有効になっているかどうかを判断するための、クロスプラットフォーム、クロスWebサーバーの方法はありますか?
$ _SERVER ['PATH_INFO']は、スクリプトの後に余分なパスセグメントがある場合にのみ入力されるようです。そのため、たとえば、リクエストが/index.phpに対するものである場合、PATH_INFOが有効になっているかどうかを確実に判断することはできません。
そのようなApache構成値を取得するための定義された方法はないと思います。
頭に浮かぶアイデアの1つはfile_get_contents()
、
http://current_site_domain/check.php/test
check.php
出力します$_SERVER['PATH_INFO']
。
リクエストの結果が「テスト」の場合、PATH_INFOは機能します。
もちろん、URLを開くことが無効になっている、ローカルドメインがわからない、ファイアウォールが設定されているなどの理由で、これは失敗する可能性があります。
失敗する可能性が低い別の方法は、iframe
:を使用することです。
<iframe src="/check.php/It%20works!"></iframe>
イフレン内に「機能する」と表示されている場合は、PATH_INFOが機能します。インストール手順に役立つ可能性があります。
$_SERVER["PATH_INFO"]は常に使用可能である必要があります。そうでない場合は、ファイル名とクエリ文字列の間に追加情報がなかったことを意味します。