通过 .htaccess 将额外的 get 变量附加到 URL

Append extra get variable to URL via .htaccess

我正在尝试将一个额外的 get 变量附加到 URL 上。我目前正在使用带有我购买的自定义主题的 OpenCart。但是,主题的开发者一直没有反应。

当我搜索产品时,它只搜索标题。有一个用于搜索描述的复选框,但默认设置为 "off",我无法在代码中的任何地方找到将其附加或更改为 URL。就是在URL.

的末尾加上&description=true

我有:

index.php?route=product/search&search=123 

...我需要将说明附加到此,使其看起来像:

index.php?route=product/search&search=123&description=true

我最后的办法是修改 .htaccess,这样我就可以劫持搜索请求,然后修改到最后。

我试过写一些,但无济于事。

RewriteRule ^/page /page?var=val [QSA]

我似乎无法弄清楚我需要如何编写它才能使其工作。有人能给我指出正确的方向吗?

编辑 - 还在乱搞,现在我有:

RewriteRule index.php?route=product/search&search=(.*)  /index.php?route=product/search&search=&description=true [QSA]

它不会附加到原来的,但是当我手动添加&description=true时,它会添加另一个?于是就变成了:

index.php?route=product/search&search=123&description=true&description=true

您无法匹配 RewriteRule 中的查询字符串。像这样使用 RewriteCond

RewriteEngine On

RewriteCond %{QUERY_STRING} ^route=product/search&search=[^&]+$ [NC]
RewriteRule ^index\.php$ /[=10=]?description=true [QSA,L,NC,NE,R=302]

RewriteCond %{QUERY_STRING} 检查您的查询字符串。在目标中,我们使用新参数 description=trueQSA 附加现有查询字符串。

参考文献: