3

IS_SUBREQ 変数がいつ「true」になるか知っている人はいますか? 私が試したすべてのことは、私に「偽」しか与えませんでした。

Apache ドキュメントからの情報

IS_SUBREQ 現在処理中のリクエストがサブリクエストの場合は「true」、それ以外の場合は「false」というテキストが含まれます。サブリクエストは、タスクを完了するために追加のファイルまたは URI を解決する必要があるモジュールによって生成される場合があります。

IS_SUBREQ が「true」の場合の例を誰かに教えてもらえますか?

私が試したことのいくつか: subreq.php - のみのページ

ブラウザの画像のサブリクエストをテストする(サーバーが気にしないことは知っていますが、試しました)

RewriteCond %{IS_SUBREQ} true
RewriteRule (.*)\.png$ null

内部リダイレクトのテスト

RewriteRule subreq\.php$ \tmp
RewriteCond %{IS_SUBREQ} true
RewriteRule tmp$ /index.html

無効。

4

1 に答える 1

1

通りApache Manual subrequest is:

a page which is included using an SSI (Server Side Include) is a subrequest, and you may want to avoid rewrites happening on those subrequests. Also, when mod_dir tries to find out information about possible directory default files (such as index.html files), this is an internal subrequest, and you often want to avoid rewrites on such subrequests

したがって、値を取得するに%{IS_SUBREQ}=trueは、次のような RewriteRule を使用します。

DirectoryIndex index.php

RewriteEngine On

RewriteCond %{IS_SUBREQ} true
RewriteRule ^index\.php$ $0?s=%{IS_SUBREQ} [L]
  • 次に、次の URL を開いて Web サイトにアクセスします。http://site.com/
  • /index.php次に、ダンプすると内部に$_GET['s']value が表示されますtrue
于 2013-10-11T15:28:38.447 に答える