I am having some problems with the Nginx rewrite algorithm for WordPress.
I am using this for the rewrite and it works good;
server_name www.domain.com domain.com;
if ($host != 'domain.com') {
rewrite ^/(.*) http://domain.com/$1 permanent;
}
it makes this url;
http://domain.com/?author=1
to this;
http://domain.com/author/username/
which is good but with an url like this;
http://domain.com/?author=1&type=like
it makes it;
http://domain.com/author/username/?type=like
and i am not getting any error but the query is not working.
What i am missing?
The correct Nginx rewrite rules for WordPress are:
This sends everything through index.php and keeps the appended query string intact.
If your running PHP-FPM you should also add this before your fastcgi_params as a security measure:
Please be aware that the & character between $uri ‘&’ $args is very important, as it will partially work without it, but will fail in some cases.
Correct:
Wrong:
The wrong method will manage to handle multiple args:
But fail if only one arg is passed:
This made it really hard to find the typo for me, but at least I learned something new ^^