我尝试将domain.tld/?cur=usd
重定向到domain.tld
(有很多货币,这只是一种货币的例子-我们不再使用这种解决方案)。我只需要将home with parameter重定向到home without parameter。其他的url对我有效,我只是在使用那个URL时遇到了麻烦。
我试着搜索和使用在线发电机,但没有一个解决方案工作。以下是我正在尝试的:
RewriteCond %{QUERY_STRING} (^|&)cur\=(.*)($|&)
RewriteRule ^$ /? [L,R=301]
//更新此规则之前我只拥有
#bof redirects
RewriteEngine enabled
...然后还有其他URL的重定向,但我先单独测试了这个规则,结果是一样的...
它没有改变我的方向。谢谢你的帮助,也许还能解释我做错了什么。
2条答案
按热度按时间vcudknz31#
正如注解中提到的,如果与
.htaccess
文件中的其他指令没有冲突,这应该已经满足了您的要求。但是,对于您尝试实现的目标(即,仅测试
cur
URL参数是否存在),上述条件中的正则表达式过于冗长。如果你只想在查询字符串的任何地方检查
cur
URL参数,那么正则表达式(^|&)cur=
就足够了(而且效率更高)。不需要反斜杠转义文字=
。如果URL参数总是出现在查询字符串的开头,那么就使用^cur=
。uyto3xhc2#
我发现了问题-这是一些与主机,重新启动后,一切都开始按预期工作。
所以我可以确认这条规则没问题。
很抱歉问这个问题。