2015-03-03 75 views
0

我们开发了一个新版本的网站。以前它在Apache下运行,但现在我们正在与Nginx合作。 我们有一些规则,我们想继续使用,我们不知道为什么这些规则不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

最后,我知道如何解决它:

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

祝你好运!