.htaccess 我无法301重定向域名.tld/?cur=usd到域名.tld

7bsow1i6  于 2022-12-04  发布在  其他
关注(0)|答案(2)|浏览(154)

我尝试将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的重定向,但我先单独测试了这个规则,结果是一样的...
它没有改变我的方向。谢谢你的帮助,也许还能解释我做错了什么。

vcudknz3

vcudknz31#

RewriteCond %{QUERY_STRING} (^|&)cur\=(.*)($|&)
RewriteRule ^$ /? [L,R=301]

正如注解中提到的,如果与.htaccess文件中的其他指令没有冲突,这应该已经满足了您的要求。
但是,对于您尝试实现的目标(即,仅测试cur URL参数是否存在),上述条件中的正则表达式过于冗长。
如果你只想在查询字符串的任何地方检查cur URL参数,那么正则表达式(^|&)cur=就足够了(而且效率更高)。不需要反斜杠转义文字=。如果URL参数总是出现在查询字符串的开头,那么就使用^cur=

uyto3xhc

uyto3xhc2#

我发现了问题-这是一些与主机,重新启动后,一切都开始按预期工作。
所以我可以确认这条规则没问题。
很抱歉问这个问题。

相关问题