Я перенес свой блог с wordpress на Octopress, и из одного домена в другой.
Я хочу перезаписать старые страницы на новые (старая структура http: //domain.old/? p = номер). Для этого я создал серверный блок, который содержит:
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;
}
Если я раскомментирую последнюю строку, я получу https://domain.new/p=14
для http://domain.old/p=14
запрос. Если он закомментирован, я получаю приветственное сообщение nginx, но без перенаправления.
У меня нет идей. Любая помощь приветствуется.
А 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.