We have developed a new version of our website. Previously it was running under Apache, but now we are working with Nginx. We have some rules that we would like to continue using and we don't know why these rules doesn't work in Nginx:
We have got the following statements at Htaccess:
RewriteCond %{REQUEST_URI} !(get-now)$
RewriteRule ^en/prices/product/(.*)$ en/prices/product/$1-get-now [R=301,L]
RewriteRule ^de/preise/product/(.*)$ de/preise/product/$1-get-now [R=301,L]
What we've tried at Nginx:
rewrite ^/en/prices/product/((?!get-now).*)$ /en/prices/product/$1-get-now permanent;
rewrite ^/de/preise/product/((?!get-now).*)$ /de/preise/product/$1-get-now permanent;
We want to run it like the following example:
If a user type:
"http://ourwebsite.com/de/preise/product/product-name"
he should be redirected to:
"http://ourwebsite.com/de/preise/product/product-name-GET-NOW"
So, what's going on?
The user who types
"http://ourwebsite.com/de/preise/product/product-name"
is being redirected to
"http://ourwebsite.com/de/preise/product/product-name-GET-NOW"
but the user who types
"http://ourwebsite.com/de/preise/product/product-name-GET-NOW" get a 404 error.
Could you help me?
Finally I know how to solve it:
if ($uri !~ "(get-now)$"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/en/prices/product/(.*)$ /en/prices/product/$1-get-now permanent;
}
Good luck!