我正在尝试将额外的get
变量附加到网址上。我目前正在使用我购买的自定义主题的OpenCart。但是,该主题的开发人员一直没有反应。
当我搜索产品时,它只搜索标题。有一个复选框来搜索描述,但这被设置为" off"默认情况下,我无法在代码中的任何位置找到要添加或更改为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=$1&description=true [QSA]
它不会将其附加到原始文件中,但是当我手动添加&description=true
时,会添加另一个吗?所以它变成了:
index.php?route=product/search&search=123&description=true&description=true
答案 0 :(得分:2)
您无法匹配RewriteRule
中的查询字符串。像这样使用RewriteCond
:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^route=product/search&search=[^&]+$ [NC]
RewriteRule ^index\.php$ /$0?description=true [QSA,L,NC,NE,R=302]
RewriteCond %{QUERY_STRING}
检查您的查询字符串。在目标中,我们使用新参数description=true
和QSA
附加现有查询字符串。