「REQUEST_URI」と「SCRIPT_NAME」の違いをご存知ですか?
nginxなどでurlのrewriteを行わない場合、両者に違いはありません。
例えば、以下のurlを例に考えてみます。

kamotora
カモトラによるitと起業と本、そして猫のお話
上に書いた「index.php」にで以下の内容を記載すると、両者ともに「index.php」が表示されます。
1 |
echo $_SERVER['REQUEST_URI']; |
1 |
echo $_SERVER['SCRIPT_NAME']; |
次に「/index」へのアクセスを「/index.php」にrewriteする設定を入れた場合、つまり、
「https://kamotora.net/index」にアクセスした際に「https://kamotora.net/index.php」の内容が表示される場合は以下のようになります。
1 |
echo $_SERVER['REQUEST_URI'];「 |
「/index」と表示されます。
1 |
echo $_SERVER['SCRIPT_NAME']; |
「index.php」と表示されます。
「REQUEST_URI」、つまり「REQUEST」された「URI」ということなので、入力した「/index」になります。
かたや、「SCRIPT_NAME」は「スクリプト名」なので、「index.php」となるわけです。