PHP Apache mod_rewrite

时间:2012-09-20 13:13:32

标签: php apache mod-rewrite wamp

以下是基本信息: 我在Windows 8 64位上使用WAMP。 Apache 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]

如果我输入http://localhost/test/some/cool/stuff/之类的网址,则可以正常使用

即。用PHP:$_SERVER['QUERY_STRING'] = index.php&some/cool/stuff/
我希望它也剥离了index.php&,但我在PHP中这样做。

如果我输入http://localhost/test/some/cool/stuff之类的网址 PHP $_SERVER['QUERY_STRING']返回index.php&some/cool/stuff/&some/cool/stuff

这个&some/cool/stuff/部分来自哪里?

1 个答案:

答案 0 :(得分:1)

我使用RewriteRule ^(.+)$ index.php [L] 然后按$_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;
}