我已经将我的博客从wordpress迁移到Octopress ,并从一个域名迁移到另一个域名。
我想创build从旧网页到新网页的重写(旧的结构是http://domain.old/?p = number )。 我为此创build了服务器块,其中包含:
server { listen 80; listen [::]:80; server_name .domain.old; rewrite .*p=1$ https://domain.new/2011/rebirth/ permanent; rewrite .*p=11$ https://domain.new/2011/travelling-salesman-problem/ permanent; rewrite .*p=14$ https://domain.new/2011/minecraft-classic-client-with-fly-ability/ permanent; # rewrite ^ https://domain.new permanent; }
如果我取消注释最后一个string,我得到https://domain.new/p=14
http://domain.old/p=14
请求。 如果它被注释掉,我得到一些nginx的欢迎消息,但没有redirect。
我没有想法。 任何帮助赞赏。
我目前的nginxconfiguration 。
rewrite
指令不能应用于$query_string
,只能改变$uri
。 要实现你想要做的事,你可以做以下的事情…
server { listen 80; listen [::]:80; server_name .domain.old; if ( $arg_p = 1 ) { return 301 https://domain.new/2011/rebirth/; } if ( $arg_p = 11 ) { return 301 https://domain.new/2011/travelling-salesman-problem/; } if ( $arg_p = 14 ) { return 301 https://domain.new/2011/minecraft-classic-client-with-fly-ability/; } # other manual redirects # ... # global redirect return 301 https://domain.new; }
请注意IfIsEvil 。