我有一个应用程序在一组服务器上运行,这些服务器从我正在运行的另一台服务器获取一个URL。
正在提取的此URL包含带有拼写错误URL参数的硬编码URL。我想通过为目标服务器上的301重定向到正确的URL创建.htaccess规则来解决这个问题,而不是更改应用程序并将其上传到我的所有其他服务器。
我假设我可以通过使用正则表达式创建RedirectRule来做到这一点,但我很沮丧。
这是我想要实现的目标:
http://www.example.com/some-page/?param1=exparam1¶m2=misspeltparam¶m3=exparam3
上述网址应重定向到:
http://www.example.com/some-page/?param1=exparam1¶m2=correctparam¶m3=exparam3
在上面的示例中,param2=misspeltparam
和param2=correctparam
(即参数名称和值)都是常量。其他一切都是动态的。
此外,拼写错误仅发生在param2
,以防上述声明中不明显。
答案 0 :(得分:1)
以下代码应该可以完成这项工作:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*¶m2=)misspeltparam(.*)$
RewriteRule .* %{REQUEST_URI}?%1correctparam%2 [R=301,L]