-5

次のコードがあります。

<?php 
if($_SERVER['REQUEST_URI'] == 'http://example.com/knowthecode')
{
    header("Location: http://example.org/knowthecode"); exit;
}

これは期待どおりに機能しません。手伝ってくれますか ?

4

3 に答える 3

1

の値は$_SERVER['REQUEST_URI']、URL全体を保持するわけではありません(コメントで示唆されているように)。

$_SERVER最終的に必要なものを保持する可能性のある他の要素がありますが、のような関数を使用してparse_url()から、それらを比較する方がよいでしょう。

于 2013-01-16T22:08:43.820 に答える
1

サイトの$_SERVER["REQUEST_URI"]ホストは含まれていません-http://www.mysite.com/page.php?key=valueのようなページの場合は`/page.php?key=value"になります$_SERVER["REQUEST_URI"]

$_SERVER["HTTP_HOST"]ホストでも検索するためにを見てみてください。

そして、良いアプローチは次を追加することです:

echo "<pre>";
var_dump($_SERVER);
echo "</pre>";
die();

これは、サーバー変数とは何か、およびそれらが何を意味するのかを理解するのに役立ちます

于 2013-01-16T22:09:00.907 に答える
0

http://php.net/manual/en/reserved.variables.server.phpをご覧ください

REQUEST_URIは、サーバー(ドメイン)に送信されるリクエストです。

たとえば、http://www.domain.com/index.phpでは、REQUEST_URIは/index.phpです。

あなたができることはこれです:

if($_SERVER['REQUEST_URI'] == '/index.php')
{
    header("Location: http://www.google.com"); 
    exit;

}
于 2013-01-16T22:13:10.627 に答える