以下是基本信息: 我在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/
部分来自哪里?
答案 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;
}