我们开发了新版本的网站。以前它在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错误。
你能帮帮我吗?
答案 0 :(得分: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;
}
祝你好运!