web関連

【php】$_SERVER[“SCRIPT_NAME”]が使えない時と使える時がある

【php】$_SERVER[“SCRIPT_NAME”]が使えない時と使える時がある

クエリ文字を除く現在のディレクトリURLを「$_SERVER["SCRIPT_NAME"]」で取得しようとしたら取得できなくて困った時の備忘録

静的phpのサイト(動く)


https://sample.com/test/index.php?○○××△△□□

<?php 
echo $_SERVER["SCRIPT_NAME"]; → /test/index.php
echo $_SERVER["REQUEST_URI"]; → /test/index.php?○○××△△□□
echo dirname($_SERVER["SCRIPT_NAME"]); → /test
?>
静的サイトであれば「$_SERVER[“SCRIPT_NAME”]」が問題なく動く

wordpressのサイト(動かない)


https://sample.com/test/index.php?○○××△△□□

<?php 
echo $_SERVER["SCRIPT_NAME"]; → /index.php
echo $_SERVER["REQUEST_URI"]; → /test/index.php?○○××△△□□
echo dirname($_SERVER["SCRIPT_NAME"]); → /
?>

「$_SERVER[“SCRIPT_NAME”]」だと現在のディレクトリ名が取得できなくなった

wordpressだと「$_SERVER[“SCRIPT_NAME”]」は使えないのかな?
「現在実行されているスクリプトのパス」を取得するみたいだけどwordpressはアクセスしてからページを生成するから静的サイトとは別の結果がでるんかな

「$_SERVER[“SCRIPT_URL”]」と「$_SERVER[“SCRIPT_URI”]」

調べていた時に出てきたので備忘録

サーバー次第で使えたり使えなかったりするみたい
さくらでは使えなかったけどmixhostのサーバーでは使えた
くわしくは調べてない

参考

▼$_SERVER[‘SCRIPT_URI’]が使えたり使えなかったり
https://qiita.com/y_ito/items/2f2855c0793e5a757cd3

▼PHPで$_SERVER[‘SCRIPT_URL’]が使えないとき
http://online106.hatenablog.jp/entry/2014/04/12/135134

クエリ文字を除いたディレクトリ名が取得できて便利だと思ったんだけど調べているうちに謎が深まった
とりあえず「$_SERVER["SCRIPT_NAME"]」はwordpressサイトで使わないで「$_SERVER["REQUEST_URI"]」を使っておこうと思う
後でしっかりと調べたい

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。