将 get-parameter 添加到 .htaccess 中的 rewrite_rule 不起作用

Add get-parameter to rewrite_rule in .htaccess does not work

我们正在通过 .htaccess file 开发小型路由器。 现在我们试图在 rewrite_rule 中传递一个 get-parameter。问题是get参数没有传递成功

例如我们有以下 url:

https://example.com/shop-verifizierung_2c1c759546318feb3177d7d2a023400a.html

和以下规则:

RewriteRule ^(.*)-verifizierung_(.*).html$ index.php?seite=&webshopparameter=verifizierung&code= [L,QSA]

该示例工作正常并且参数设置正确,但现在我们必须添加一个额外的获取参数 token,如下所示:

https://example.com/shop-verifizierung_2c1c759546318feb3177d7d2a023400a.html?token=6TT38831GN100844

所以我们展开 rewrite_rule:

RewriteRule ^(.*)-verifizierung_(.*).html?token=(.*)$ index.php?seite=&webshopparameter=verifizierung&code=&token= [L,QSA]
                                         ^^^^^^^^^^^^                                                          ^^^^^^^^^

但它不会按预期工作。我们也尝试使用 {QUERY_STRING} 但结果是一样的。这里的问题在哪里?感谢您的帮助!

使用您显示的示例,请尝试遵循 htaccess 规则。您可以使用 THE_REQUEST 变量,这将更适合您当前的情况。

此外,请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(.*?)-verifizierung_(.*?)\.html\?token=(\S+)\s [NC]
RewriteRule ^  index.php?eite=%1&webshopparameter=verifizierung&code=%2&token=%3 [L,QSA]