2010-11-19 14 views
0

私はこのように、現在のページのURLを取得するには、この変数を使用しています:

$request = $_SERVER["REQUEST_URI"]; 

    $page = (is_ssl() ? 'https' : 'http').'://'; 
    if ($_SERVER["SERVER_PORT"] != "80") 
    $page .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$request; 
    else $page .= $_SERVER["SERVER_NAME"].$request; 

アプリ。私はこれを公開していますが、いくつかのサイト(非常にまれです)では、この変数は要求されたページだけでなく、ドメイン名を含むURL全体を返します。これはサーバの設定ミスですか?

+0

あなたのアプリが配備されている「非常にまれな」障害インスタンスで実行されているWebサーバーエンジンを教えてください。 Apache、lighttpd、nginx? – stillstanding

+0

おそらくApacheです。とにかく私はその問題を見つけたと思う。このアプリ。 WordPress用で、WPMLというWPプラグインがあります。WPMLは、リダイレクトを混乱させるか、この変数を変更しています。 – Alex

答えて

2

あなたのコード(または第三者パッケージ)のどこかにこの変数が変更されている可能性があります。

grepです。 $_SERVER['REQUEST_URI]が割り当てられ、普通に使用されるか、または例えば、等価性をテストしていないされている場所正規表現は見つける必要があることを

grep -r -E '\$_SERVER\[[\'"]?REQUEST_URI[\'"]?\]\s?=[^=]+?' 

。また、PHP variables are case sensitiveso are array keysのため、-iフラグを削除しました。

関連する問題