$_SERVER['REQUEST_URI'] をトリミングして、末尾の .php ファイルを削除しようとしています。しかし、トリミングではないので調べたところ、/ をトリミングしたところ、REQUEST_URI の最初の文字のみがトリミングされていることがわかりました。
<? var_dump (trim($_SERVER['REQUEST_URI'], '/')); ?>
これは、string(37) "ncms/admin/login.php?p=login&failed=1" を返します。
ncms の最初の / 前だけをトリミングしていることがわかります。
ここに手つかずの文字列があります。
string(37) "/ncms/admin/login.php?p=login&failed=1"
なぜ最初の文字だけに影響するのですか?