需要htaccess规则来区分目录和查询字符串

时间:2013-11-25 12:39:19

标签: php apache .htaccess mod-rewrite

我有一个如下所述的网址。

abc.com/test/abc/hello/?hello=world&foo=bar

我要使用htaccess

区分目录和查询字符串

我需要得到如下结果:

Array
(
    [data] => test/abc/hello/
    [hello] => world
    [foo] => bar
)

我尝试了很多htaccess方法,但不会得到我想要的结果。我试过下面的方法

如果我尝试过:

RewriteRule ^([\w\-\/]+)$ index.php?data=$1

输出:

Array
(
    [data] => test/abc/hello/
)

尝试时:

RewriteRule .* test.php [L]

输出:

Array
(
    [hello] => world
    [foo] => bar
)

但建议我使用htaccess规则,我可以得到像

这样的结果
Array
(
    [data] => test/abc/hello/
    [hello] => world
    [foo] => bar
)

任何人都可以帮我从htaccess获取结果

1 个答案:

答案 0 :(得分:1)

这可能有效(未经测试):

RewriteEngine On
RewriteRule ^([\w\-\/]+)$ index.php?data=$1 [L,QSA]

标记QSA:附加QueryString。

但是我很保守,因为你使用它来获取数据,你好和foo,这太费钱了。在PHP中,您可以使用:

<?php
$data = $_SERVER["REQUEST_URI"];
$hello = $_GET["hello"];
$foo = $_GET["foo"];
?>

无需任何重写。