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

祝你好運!