2013-02-14 74 views
0

我的動態生成的頁面以前是這樣的網址:如何用NGINX構建這個301永久移動規則?

http://domain.tld/folder/dynamic_label_1/dynamic_label_2/the_rest_... 

所有頁面然而現在,移動到:

http://domain.tld/folder/dynamic_label_2-dynamic_label_1/the_rest_... 

注:這些頁面的最後部分是可選> the_rest_。 。意思是,在之後並不總是有東西。dynamic_label_2-dynamic_label_1/

我對Nginx相當陌生,無法弄清楚如何設置這個重定向規則。

我的問題是:

什麼是這裏的nginx服務器重定向規則?

謝謝。

回答

2

此時,應做到這一點 -

rewrite ^/folder/(\w+)/(\w+)(.*)$ /folder/$2-$1$3 break; 

我假設\w應該夠你dynamic_label。如果不是,請隨意在圓括號內添加字符。

1

以下重寫被插入到您的虛擬主機,在位置(或服務器

rewrite ^/folder/dynamic_label_1/dynamic_label_2(.*)$ /folder/dynamic_label_2-dynamic_label_1$1 break; 

編輯基於評論

rewrite ^/folder/([^/]+)/([^/]+)(/.*)?$ /folder/$2-$1$3 break; 

可選部分(包括可選的領導/)在$3

+0

Hello @ ring0!謝謝你的答案,但在這裏,dunamic_label_應該是* dynamic *,因爲它們可以是任何字符串。 x,y,z .. *文件夾*總是相同的,之後的兩個字符串應該從a/b更改爲b-a。你能幫我一下嗎?它會是^ /文件夾/ $ 1/$ 2/$ 3 /文件夾/ $ 2- $ 1/$ 3?我怎樣才能讓3美元可選?謝謝。 – Phil 2013-02-14 15:57:23

+0

編輯符合要求的答案。 – 2013-02-15 07:13:38