0

基本情報は次のとおりです。Windows 8 64 ビットで WAMP を使用しています。アパッチ 2.4.2、PHP 5.4+。

私のプロジェクト ファイルは にありますhttp://localhost/test/。このフォルダ内の.htaccessファイルは次のとおりです。

RewriteEngine on

#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?$1 [L,QSA]

のような URL を入力すると、正常にhttp://localhost/test/some/cool/stuff/動作します

つまり、PHP の場合:同様$_SERVER['QUERY_STRING'] = index.php&some/cool/stuff/
に削除したいのですが、PHP でそれを行っています。index.php&

http://localhost/test/some/cool/stuff PHP$_SERVER['QUERY_STRING']が返すようなURLを入力するとindex.php&some/cool/stuff/&some/cool/stuff

この&some/cool/stuff/部分はどこから来たのですか?

4

1 に答える 1

1

私は使用しRewriteRule ^(.+)$ index.php [L] 、次にURLを取得します$_SERVER['REQUEST_URI']

PHP でこの関数を使用して、フォールバック付きのリクエスト URL を取得します。

private static function get_request_URL() {
    if (isset($_SERVER["REDIRECT_URL"])) {
        $realURL = $_SERVER["REDIRECT_URL"];
    } elseif (isset($_SERVER["REQUEST_URI"])) {
        list($realURL) = explode("?", $_SERVER["REQUEST_URI"]);
    } else {
        return null;
    }
    $realURL = rtrim(trim(strtolower($realURL)), "/");
    if ($realURL == "") {
        $realURL = "/";
    }
    return $realURL;
}
于 2012-09-20T13:16:28.087 に答える