Мы разработали новую версию нашего веб-сайта. Раньше он работал под Apache, но теперь мы работаем с Nginx. У нас есть некоторые правила, которые мы хотели бы продолжать использовать, и мы не знаем, почему эти правила не работают в Nginx:
В 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]
Что мы пробовали в 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;
Мы хотим запустить его, как в следующем примере:
Если тип пользователя:
" http://ourwebsite.com/de/preise/product/product-name "
он должен быть перенаправлен на:
" http://ourwebsite.com/de/preise/product/product-name-GET-NOW "
Итак, что происходит?
Пользователь, который вводит
" http://ourwebsite.com/de/preise/product/product-name "
перенаправляется на
" http://ourwebsite.com/de/preise/product/product-name-GET-NOW "
но пользователь, который вводит
" http://ourwebsite.com/de/preise/product/product-name-GET-NOW " получите ошибку 404.
Не могли бы вы помочь мне?
Наконец, я знаю, как его решить:
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;
}
Удачи!