从重定向的网址

时间:2015-05-21 19:30:03

标签: php apache .htaccess

当尝试从URL中获取变量时,如果它以点(“。”)结尾,我无法获得该点。通常在变量的末尾使用点,并且需要点才能搜索条目。

示例 - >一个网址:“http://localhost/test/test/testing.testing./”会给我以下内容:$ module =“test”,$ var1 =“test”,$ var2 =“testing.testing”

//from url : http://localhost/test/test/testing.testing./
var_dump($_GET);  
// outputs array(3) { ["module"]=> string(4) "test" ["var1"]=> string(4) "test" ["var2"]=> string(15) "testing.testing" }

使用网址时:“http://localhost/?module=test&var1=test&var2=testing.testing。”输出将是正确的,包括尾随点。

//from URL : http://localhost/?module=test&var1=test&var2=testing.testing.
var_dump($_GET);  
// outputs array(3) { ["module"]=> string(4) "test" ["var1"]=> string(4) "test" ["var2"]=> string(16) "testing.testing." }

我显然希望保持更清晰的URL结构,而不必在我尝试传递的变量包含点时绕过它。

我有理由相信这是我的.htaccess的问题,因为当在url中访问脚本时,它能够接收尾随点。

我的.htaccess看起来像这样:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ index.php?module=$1&var1=$2&var2=$3 [L]

我也被朋友告知,这可能是一个Windows问题,如果这是真的,我只是好奇是否有解决方法。我知道我可以通过解析$ _SERVER ['REQUEST_URI']来获取变量,但是我更愿意修复.htaccess中的另一个而不是用PHP捏造它。

如果需要更多信息,请通知我。 感谢。

1 个答案:

答案 0 :(得分:0)

怎么样......

$path = $_SERVER['PHP_SELF'];
$params = explode("/", $path);
var_dump($params);