4

When searching for "interesting people" the search results page of my website is https://example.com/?s=interesting+people&submit.x=0&submit.y=0

Instead of displaying that search results page I would like this specific search result to 302 redirect using .htaccess to an existing page https://example.com/interestingpeople

For all other search results, I'd like the default search results page. So, for example, searching for "funny people" should still return and display the URL of https://example.com/?s=funny+people&submit.x=0&submit.y=0

au_Martin
  • 43
  • 4

1 Answers1

3

What you seem to require is a straight forward redirect. However, in order to match against the query string portion of the URL, you need to use mod_rewrite with a condition that checks against the QUERY_STRING server variable.

Try the following at the top of your .htaccess file:

RewriteEngine On

RewriteCond %{QUERY_STRING} =s=interesting+people&submit.x=0&submit.y=0
RewriteRule ^$ /interestingpeople [QSD,R,L]

The = prefix on the CondPattern makes it into an exact match string comparison (not a regex).

The RewriteRule pattern ^$ matches against an empty URL-path, ie. the document root.

The QSD flag (Apache 2.4) is required to remove the query string from the redirected URL.

MrWhite
  • 42,784
  • 4
  • 49
  • 90