.htaccess规则301将带有misspelt参数值的URL重定向到具有正确参数值的URL

时间:2012-11-29 16:57:10

标签: regex .htaccess

我有一个应用程序在一组服务器上运行,这些服务器从我正在运行的另一台服务器获取一个URL。

正在提取的此URL包含带有拼写错误URL参数的硬编码URL。我想通过为目标服务器上的301重定向到正确的URL创建.htaccess规则来解决这个问题,而不是更改应用程序并将其上传到我的所有其他服务器。

我假设我可以通过使用正则表达式创建RedirectRule来做到这一点,但我很沮丧。

这是我想要实现的目标:

http://www.example.com/some-page/?param1=exparam1&param2=misspeltparam&param3=exparam3

上述网址应重定向到:

http://www.example.com/some-page/?param1=exparam1&param2=correctparam&param3=exparam3

在上面的示例中,param2=misspeltparamparam2=correctparam(即参数名称和值)都是常量。其他一切都是动态的。

此外,拼写错误仅发生在param2,以防上述声明中不明显。

1 个答案:

答案 0 :(得分:1)

以下代码应该可以完成这项工作:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.*&param2=)misspeltparam(.*)$
RewriteRule .* %{REQUEST_URI}?%1correctparam%2 [R=301,L]