は、我々は次のPHP "のindex.php" のページがあるとしにApacheのmod_rewriteと%{REQUEST_URI}問題
RewriteRule ^2.php$ index.php?req=%{REQUEST_URI}
RewriteRule ^1.php$ 2.php
今、してみましょうアクセス "index.php"。これは次のとおりです。
/index.php
null
これはクールです。 "2.php"にアクセスしましょう。これを取得します:
/2.php
/2.php
それも素晴らしいです。しかし、今のは「1.php」を見てみましょう:
/1.php
/2.php
だから...私たちは「1.php」を求める、それは静かに静かに「index.phpにリダイレクトする「2.php」にリダイレクトします最初のリダイレクションの後にの後にを探しているページ)と$ _SERVER ['REQUEST_URI']のように見えますが、 "%REQUEST_URI" "1.php"(元の要求)です。
これらの変数は等しくないはずですか?これは、オリジナルのリクエストにのみ基づいてリダイレクトを実行しようとしていたため、今日私に多くの頭痛を与えました。リダイレクト後も元の要求を伝える ".htaccess"で使用できる変数はありますか?
ありがとうございました。私は自分自身を明確にしたいと思います。それは私の最初の投稿です:)
'$ _SERVER ['REQUEST_URI']'を使わないのはなぜですか? – Gumbo
PHPではなく、.htaccessで変数を使用する必要があります。最初の投稿で述べたように、%{REQUEST_URI}にはリダイレクト/リライト後の元のリクエストは含まれていません。 – liviucmg