如何使用 .htaccess 将带有查询字符串的 url 重定向到另一个带有查询字符串的 url

How to redirect url with query string to another url with a query string using .htaccess

首先,让我先声明我对 .htaccess 不是很熟练。我确实搜索了 Whosebug 并找到了许多重定向示例,但找不到一个可以完成我想要完成的事情。

我正在尝试将带有查询字符串的特定 URL 重定向到带有查询字符串的不同 URL。查询字符串值是动态的。

例如,我想重定向这个:

https://www.example.com/page/?search=search_string&param1=whatever&param2=whatever

为此:

https://www.example.com/?s=search_string

在第一个 URL 中,除了 'search' 值外,我不关心任何参数。第一个 URL 中 'search' 的值将是第二个 URL 中 's' 的值。我想删除所有其他参数。请记住,第一个 URL 中 'search' 的值是动态的。

我尝试了以下但没有成功:

RedirectMatch 301 ^/page/?(.*)$ https://www.example.com/?

您需要在此处使用 mod_rewrite 才能检查和捕获来自 QUERY_STRING 的值。

RewriteEngine On

RewriteCond %{QUERY_STRING} (?:^|&)search=([^&]+) [NC]
RewriteRule ^page/?$ /?s=%1 [L,NC,R=302]