2013-02-14 45 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