16

%{REQUEST_FILENAME} と %{THE_REQUEST} によって何が返されますか?

.htaccess ファイルをチェックしていたところ、気が付いたのですが、これについてはほとんど知識がありません。以下のコードは両方を使用しています。それは私がそれを理解したいだけです。

#remove / at the end of URL
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/$ /$1 [L,R=301]

#remove /index.php at the end of URL
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

乾杯、マーク

4

1 に答える 1

28

リンクを提供してくれた Ahmed に感謝します。
怠惰すぎてクリックできない人への簡単な参照として、ここに私が求めていたビットがあります...

THE_REQUEST ブラウザからサーバーに送信される完全な HTTP リクエスト行 (例: "GET /index.html HTTP/1.1")。これには、ブラウザから送信された追加のヘッダーは含まれません。以下の他のほとんどの変数とは異なり、この値はエスケープ解除 (デコード) されていません。

REQUEST_URI "/index.html" など、要求された URI のパス コンポーネント。これは特に、QUERY_STRING という名前の独自の変数として使用できるクエリ文字列を除外します。

REQUEST_FILENAME 要求に一致するファイルまたはスクリプトへの完全なローカル ファイルシステム パス (REQUEST_FILENAME が参照された時点でサーバーによって既に決定されている場合)。それ以外の場合 (仮想ホスト コンテキストで使用される場合など)、REQUEST_URI と同じ値。AcceptPathInfo の値によっては、サーバーが REQUEST_URI の一部の主要コンポーネントのみを使用して、要求をファイルにマップした可能性があります。

于 2013-06-20T11:21:29.520 に答える