Переписать пользовательские параметры WordPress

Я пытаюсь переписать WordPress URL с параметрами, такими как:

от: http://www.url.com/person/?fname=billn&lname=gates

по адресу: http://www.url.com/person/jason/gates/

от: http://www.url.com/company/?name=microsoft&country=usa

по адресу: http://www.url.com/company/microsoft/usa/

Где человек и компания - это WordPress страницы, а Fname, lname, name и country - это пользовательские параметры $_get.

Я пробовал некоторые вещи (без результатов), такие как:

rewrite ^/page/bill/gates/(.*)$ /index.php?p=6&fname=$1&lname=$2 last;

Я в настоящее время использую конфигурацию Wordpress по умолчанию для Nginx:

    server {
            listen   80; 
            listen   [::]:80 

            root /var/www;
            index index.php index.html index.htm;

            server_name localhost;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    }

2 ответа

Я использую что-то подобное для одного из моих сайтов, чтобы сделать это для всех ссылок.

location / {
    if (!-e $request_filename){
            rewrite ^/fonts/(.+)$ /system/application/fonts/$1 last;
            rewrite ^/(.*)$ /index.php?/$1 last;
            break;
    }
}

Так что только для страницы.. может быть, вы могли бы попробовать:

location / {
    if (!-e $request_filename){
            rewrite ^/page/(.*)$ /index.php?/$1 last;
            break;
    }
}

Изменить: PHP переписать правила от Nginx.. http://www.farinspace.com/wordpress-nginx-rewrite-rules/

Ну, я думаю, вы можете попытаться добавить аргументы к аргументам WordPress, как это

location ^/page/([^/]+)/([^/]+)/?$ {
    try_files /index.php?$args&name=$1&type=$2 =404;
}
Другие вопросы по тегам