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

up vote 2 down vote accepted

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.

  • Thank you, MrWhite. This solution has worked perfectly. – au_Martin Nov 10 at 1:57

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.