
empty($_SERVER['REQUEST_URI'])とは、何のことでしょうか?
下記スクリプトの意味について教えてください。
//
// Fix unavailable $_SERVER['REQUEST_URI'] on IIS
//
if ( empty($_SERVER['REQUEST_URI']) ) {
$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
$_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : '';
}
▼if ( empty($_SERVER['REQUEST_URI']) ) {
$_SERVER['REQUEST_URI']が空だったら、の意味が分かりません。
ページにアクセスするためのURIを指定しなかったら?
それは、どんな状況なのでしょうか?
▼$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
$_SERVER['REQUEST_URI']に、現在実行しているスクリプトのファイル名を利用。これは、何をしているのでしょうか?
▼$_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : '';
クエリ情報(URLの"?"以降の文字列)が空でなければ、クエリ情報をくっつける。空だったら、くっつけない
結局、このスクリプトでは何をしようとしているのでしょうか?
また、このスクリプトがないと、どういう不具合が起きる可能性があると、想定されるでしょうか?
検索してみたら、下記のようなページがあったのですが、
IIS(サーバ?)固有の不具合回避対策なのでしょうか?
▽Dokeos Forum • View topic - IIS $_SERVER['REQUEST_URI']
http://www.dokeos.com/forum/viewtopic.php?t=8335

No.2ベストアンサー
- 回答日時:
IISで$_SERVER['REQUEST_URI']の値を取得できないとき、
無理やり$_SERVER['REQUEST_URI']を作るような処理が書いてあります。
コメント文とソースをそのまま読んでもなんとなくわかる
//
// IISでは$_SERVER['REQUEST_URI']が使用できないことがあるのでそれをなんとか使用できるようにしちゃいましょう
//
もし$_SERVER['REQUEST_URI']に値が入っていないなら {
$_SERVER['REQUEST_URI']にPHPスクリプトファイル名をまず入れて、
クエリ文字列があるならついでにそれも付けてやって$_SERVER['REQUEST_URI']を再現
}
No.3
- 回答日時:
他には、コマンドラインから php -f index.php みたいに実行すると
REQUEST_URI は空になります。
回答ありがとうございました。
>他には、コマンドラインから php -f index.php みたいに実行すると
>REQUEST_URI は空になります。
はじめて知りました。情報ありがとうございましたー
No.1
- 回答日時:
> $_SERVER['REQUEST_URI']が空だったら、の意味が分かりません。
これだけは なんとなく分ります。
ドメインだけ打った場合とかは REQUEST_URI は 多分 空っぽになります。
XAMPPで試したときは、ブラウザが 勝手に補完してるの知りませんが、スラッシュが入ってました。
んで、↓これに入るのは index.php とかだと思われます。
$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
正確には apache の httpd.conf の DirectoryIndex で 指定しているファイル名なんじゃないかなと。
他のは 意図が分りません。
俺 英語読めませんので リンク先もさっぱりでしたし。(´・ω・`)
回答ありがとうございました。
>ドメインだけ打った場合とかは REQUEST_URI は 多分 空っぽになります。
なるほど…。参考になりましたー
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- その他(OS) Windows Server評価版がダウンロードできない 1 2022/05/06 13:32
- その他(開発・運用・管理) Windows serverでマルチキャスト通信の確認をしたいです。MicrosoftよりMPING 1 2023/03/31 01:05
- その他(ブラウザ) グーの質問見ようとしたらブラウザ版で 3 2022/03/28 10:33
- 2ちゃんねる Server relocation is in progress.って何でしょうか 1 2022/10/27 19:46
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP PHP & MySQL: Server-side Web Development ペーパ 1 2022/04/19 19:23
- SQL Server SQL ServerでDBを構築。これは開発? 4 2022/05/28 14:10
- サーバー Windows Server 2019 CALについて 3 2022/04/02 16:40
- その他(ソフトウェア) 至急!500 Internal Server Errorこのエラーはなんですか?原因と解決法教えてく 4 2022/06/21 15:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ステップカウンタ(PHP)
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
libpng 24bpp rawをPNGに変換す...
-
ファイルの遷移がうまく行われ...
-
PHPで画像アップロード時にサイ...
-
PHPで`headers already sent`と...
-
SELECTの値を保持する
-
VB2008でFTPでのディ...
-
sqlで日付が一番古いデータの月...
-
.phpと.incファイルの違いはな...
-
.htaccessファイルの修正がこれ...
-
visualstudioでc#のdllができない
-
サーバーによってはmb_send_mai...
-
*.php、*.php3、*.phtmlの違い
-
PHPの変わった閉じタグの必要性...
-
「クラス関数」「メンバ関数」...
-
FTPClientで転送結果(OKかFAIL)
-
PHPインストールについて
-
フォントの色を変えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpにて、ipアドレスによる処理...
-
3つ以上の論理積は利用可能なの...
-
PHP 勉強し始める
-
PHPでパソコン内のフォルダやフ...
-
empty($_SERVER['REQUEST_U
-
PHP5(データベースは使わない...
-
FedoraCore1でphp4
-
フリーでスクリプトを配布して...
-
初心者
-
関数『readgzfile』について
-
PHPでPC版と携帯版のペー...
-
$_SERVER と $_ENV の違い
-
簡単な心理テストを作りたい
-
スクリプト終了時に呼び出す関...
-
ランキングサイト構築
-
PHPでのタイムアウト設定(HTTP...
-
プロレベルのソース
-
textareaで入力できる文字数を...
-
ORIG_SCRIPT_○○○はあるがORIG_P...
-
入力されたPHPスクリプトを元に...
おすすめ情報