2

事情是这样的:

我的 .htaccess 中有这个 URL 重写条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([-A-Za-z0-9]+)/([A-Za-z0-9\-_]+) app.php?pattern=$1&content=$2 [L]

然后,它与此 url 完美配合,例如: www.mysite.com/pony/mycontent

但是当我尝试添加一些这样的 Http GET 参数时: www.mysite.com/pony/mycontent?moreparameter=true

var_dump($_GET) 返回我:

array (size=2)
  'pattern' => string 'pony' (length=4)
  'content' => string 'mycontent' (length=8)

没有更多的价值..

如何检索其他参数?

4

1 回答 1

2

您可能想尝试将“查询字符串附加”标志 (QSA) 添加到您的RewriteRule -

RewriteRule ^([-A-Za-z0-9]+)... app.php?pattern=$1&content=$2 [QSA,L]

QSA|qsappend - 当替换 URI 包含查询字符串时,RewriteRule 的默认行为是丢弃现有的查询字符串,并将其替换为新生成的查询字符串。使用 [QSA] 标志会合并查询字符串。

在这里阅读更多

于 2013-01-22T11:20:39.807 回答