Настройте постоянную перезапись в Nginx

0

Мы разработали новую версию нашего веб-сайта. Раньше он работал под 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.

Не могли бы вы помочь мне?

Теги:
nginx
.htaccess

1 ответ

0

Наконец, я знаю, как его решить:

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;
}

Удачи!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню