Переписать пользовательские параметры 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;
}