PHP和.htaccess没有';我不允许你得到美元

PHP和.htaccess没有';我不允许你得到美元,php,.htaccess,Php,.htaccess,我的Web服务器根目录中有一个.htaccess文档,其代码如下: Options +FollowSymLinks RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^.*$ ./index.php 一切都很完美,我可以使用以下代码轻松地在PHP中分解链接: $params = explode('/', $_SERVER['REQUEST_UR

我的Web服务器根目录中有一个.htaccess文档,其代码如下:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^.*$ ./index.php
一切都很完美,我可以使用以下代码轻松地在PHP中分解链接:

$params = explode('/', $_SERVER['REQUEST_URI']);
var_dump($params);
现在我想执行一个
$\u GET['name']
请求,但这不起作用,它只是将其粘贴到params数组中,因此我无法使用
$\u GET
获取代码


你知道怎么解决这个问题吗?我想问题是.htaccess文件。

也许您可以添加
{QUERY\u STRING}

RewriteRule ^.*$ ./index.php?%{QUERY_STRING}

这应该将所有GET参数附加到新url。

也许您可以添加
{QUERY\u STRING}

RewriteRule ^.*$ ./index.php?%{QUERY_STRING}

这应该将所有GET参数附加到新url。

RewriteRule^.*$./index.php[QSA,L]


基本上每次都会追加查询字符串,表示一旦匹配了其他规则(如果有)就停止处理。

RewriteRule^.*$./index.php[QSA,L]


基本上每次都会追加查询字符串,这意味着一旦匹配了其他规则(如果有的话),就会停止处理这些规则。

那么,您希望得到什么呢?如果您没有在url中传递任何查询参数,那么php没有任何东西可以放入$\u GET。e、 g.如果您有
example.com/foo/bar
,那么$\u GET将是空的,因为没有
?key=val
部分要分开。您需要有
example.com/foo/bar?baz=qux
,在这种情况下,$params将包含foo/bar,而$\u GET将包含baz->qux。您请求的URL是什么?“它只是将其粘贴到params数组中”-您的意思是它出现在示例中
$params
数组的最后一个元素的末尾?(此部分为预期内容。)@MarcB OP未说明请求的URL是什么。为什么你认为没有查询字符串?@w3d:如果有查询字符串,那么$\u GET中就会有数据。那么,你期待什么呢?如果您没有在url中传递任何查询参数,那么php没有任何东西可以放入$\u GET。e、 g.如果您有
example.com/foo/bar
,那么$\u GET将是空的,因为没有
?key=val
部分要分开。您需要有
example.com/foo/bar?baz=qux
,在这种情况下,$params将包含foo/bar,而$\u GET将包含baz->qux。您请求的URL是什么?“它只是将其粘贴到params数组中”-您的意思是它出现在示例中
$params
数组的最后一个元素的末尾?(此部分为预期内容。)@MarcB OP未说明请求的URL是什么。为什么假设没有查询字符串?@w3d:如果有查询字符串,则$\u GET中会有数据。此实例中不需要
QSA
标志。请求中的查询字符串将自动附加到替换上。如果要在替换中添加额外的查询字符串,并且需要合并这两个查询字符串,则只需要使用
QSA
标志。此实例中不需要使用
QSA
标志。请求中的查询字符串将自动附加到替换上。如果要在替换中添加额外的查询字符串,并且需要合并这两个查询字符串,则只需要使用
QSA
标志。通过在替换中不包含查询字符串(即
),请求中的查询字符串应该已经传递给替换。手动添加
?%{QUERY\u STRING}
不是必需的。很好,我测试了这一点,您是对的;)好吧,我想我的回答不会有帮助OP@YanickvanBarneveld好奇-因为这真的不应该(至少在Apache上,您的问题中给出了代码)。这里似乎发生了其他事情?通过在替换中不包含查询字符串(即
),请求上的查询字符串应该已经传递给替换。手动添加
?%{QUERY\u STRING}
不是必需的。很好,我测试了这一点,您是对的;)好吧,我想我的回答不会有帮助OP@YanickvanBarneveld好奇-因为这真的不应该(至少在Apache上,您的问题中给出了代码)。这里似乎还发生了什么事?