我们开发了一个新版本的网站。以前它是在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;
}
祝你好运!