.htaccess URL 重写不适用于“?”作为数据的符号

.htaccess URL rewrite not work for "?" symbol as data

我想通过 URL ($_GET) 将此字符串传递到我的 php 文件。

7dDirSxvHg9h6Z4gHX9oo29SuN8k4dXV?Authority=000000000000000000000000000070816609&Status=OK

这是我的 .htaccess 代码

RewriteEngine on
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/(.*)$    index.php?page=&=    [NC,L]
RewriteRule ^([A-Za-z0-9-]+)?$   index.php?page=   [NC,L]

但是当我打开这个 url :

example.com/callback/Data/7dDirSxvHg9h6Z4gHX9oo29SuN8k4dXV?Authority=000000000000000000000000000070816609&Status=OK

var_dump 代码显示此字符串:

array(2) { ["page"]=> string(8) "callback" ["Data"]=> string(32) "7dDirSxvHg9h6Z4gHX9oo29SuN8k4dXV" } 

后面有什么字符吗?符号已删除。我的代码的哪一部分不正确?

如果您希望它保留在查询字符串中,您需要在重写中使用 QSA 标志:

RewriteEngine on
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/(.*)$    index.php?page=&=    [NC,L,QSA]
RewriteRule ^([A-Za-z0-9-]+)?$   index.php?page=   [NC,L,QSA]