0

我尝试使用参数重写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/

其中 person & company 是 wordpress 页面,Fname、lname、name 和 country 是自定义的 $_get 参数。

我尝试了一些事情(没有结果),例如:

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

我目前使用 Nginx 的默认 Wordpress 配置:

    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;

    }
4

2 回答 2

0

我对我的一个网站使用类似的东西来为所有链接执行此操作。

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;
    }
}

编辑:来自 Nginx 的 PHP 重写规则 .. http://www.farinspace.com/wordpress-nginx-rewrite-rules/

于 2013-09-10T18:34:38.803 回答
0

好吧,我认为您可以尝试将 args 附加到 wordpress args,就像这样

location ^/page/([^/]+)/([^/]+)/?$ {
    try_files /index.php?$args&name=$1&type=$2 =404;
}
于 2013-08-19T09:05:40.657 回答